Comment dois-je stocker et de récupérer un NSMutableDictionary et de NSUserDefaults?
J'ai essayé de faire de ce magasin un dictionnaire vide dans NSUserDefaults.
NSMutableDictionary* fruits = [NSMutableDictionary alloc];
[defaults setObject:fruits forKey:@"fruits"];
et ce pour le récupérer.
NSMutableDictionary* fruits = [[NSMutableDictionary alloc] initWithDictionary:[defaults objectForKey:@"fruits"]];
Toutefois, la récupération de la dictionnaire plante mon application. Pourquoi? Comment puis-je stocker un dictionnaire en NSUserDefaults?
Êtes-vous sûr que le crash se produit lorsqu'il est extrait? La première ligne est manquante
init
, ce qui devrait provoquer un plantage lorsqu'il est ajouté à defaults
.OriginalL'auteur Billy Goswell | 2012-04-12
Vous devez vous connecter pour publier un commentaire.
Vous obtenez un immuable dictionnaire de retour. Vous n'avez pas besoin de "capsulate" dans un autre dictionnaire. Si vous souhaitez faire mutable écrire:
https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/nsuserdefaults_Class/Reference/Reference.html
Mise à jour de la réponse; parce que NSDictionary est une super-classe de NSMutableDictionary et NSUserDefaults automatiquement "convertir" il lorsque vous l'enregistrez.
OriginalL'auteur LuckyLuke
Vous pouvez utiliser:
Enregistrer:
Récupérer:
OriginalL'auteur Son Nguyen
Vous devez init votre dictionnaire et l'ensemble est comme objet plus tard. De cette façon, les œuvres, c'est la même chose que votre exemple, mais seulement avec l'initialisation.
Maintenant, je suis à la console de log et l'app ne tombe pas en panne:
OriginalL'auteur Josef Rysanek
devrait être
Vous avez besoin de toujours initialiser des objets après leur attribution.
OriginalL'auteur Kurt Revis