Je souhaite conserver une synchronisation variable avec UserDefaults directement lorsque je définis une valeur. Je l'ai fait comme ceci:Bonne façon de synchroniser une variable avec UserDefaults
var userId: String {
get {
return UserDefaults.standard.string(forKey: kUserIdKey) ?? ""
}
set {
UserDefaults.standard.set(newValue, forKey: kUserIdKey)
}
}
Cela fonctionne bien mais est-ce la bonne façon de le faire?
Si oui, qu'en est-il de Array?
var tagsList: [Int] {
get {
return (UserDefaults.standard.object(forKey: kTagsList) as? [Int]) ?? [Int]()
}
set {
UserDefaults.standard.set(newValue, forKey: kTagsList)
}
}
Si j'ajoute un élément tagsList.append(0)
, est la nouvelle valeur stockée dans UserDefaults?
Mise à jour.
Voici ce que j'ai dans la cour de récréation:
avez-vous essayé de le déboguer et de vérifier comment ressemble 'newValue'? –