J'ai un dictionnaire stocké dans NSUserDefaults
et j'ai besoin d'ajouter/supprimer des éléments dans ce dictionnaire.Modifier des objets dans NSUserDefaults sans créer et re-définir des copies
Cela me dérange que pour ce faire, je dois créer une copie mutable du dictionnaire entier, modifier un élément et remplacer le dictionnaire entier par une nouvelle copie.
copy = [[defaults objectForKey:@"foo"] mutableCopy];
[copy setObject:… forKey:@"bar"];
[defaults setObject:copy forKey:@"foo"];
et il implique encore plus de copie et de redéfinition pour les objets plus profonds dans la hiérarchie.
Y a-t-il un meilleur moyen?
J'ai essayé d'utiliser [defaults setValue:… forKeyPath:@"foo.bar"]
mais cela ne semble pas fonctionner (l'objet n'est pas modifiable).