50 votes

Enregistrer NSDictionary dans NSUserDefaults

J'ai un NSMutableDictionary et j'ai ajouté des valeurs à celui-ci (plusieurs paires clé-valeur). Maintenant, je dois enregistrer ce NSMutableDictionary dans un objet NSUserDefaults.

1.) Mon code est le suivant; Je ne suis pas sûr s'il est correct, et j'aimerais savoir comment récupérer le NSMutableDictionary à partir du NSUSerDefault ?

2.) Après avoir récupéré le NSMutableDictionary, je dois le sauvegarder dans un NSDictionary. Comment pourrais-je faire cela ?

NSMutableDictionary *dic = [[NSMutableDictionary  alloc] init];

[dic addObject:@"sss" forKey:@"hi"];
[dic addObject:@"eee" forKey:@"hr"];

 [NSUserDefaults standardDefaults] setObject:dic forKey:@"DicKey"];
 [[NSUserDefaults standardDefaults] synchronize];

88voto

yuji Points 11531

Votre code est correct, mais une chose à garder à l'esprit est que NSUserDefaults ne fait pas la distinction entre les objets mutables et immuables, donc lorsque vous le récupérez, il sera immuable :

NSDictionary *retrievedDictionary = [[NSUserDefaults standardUserDefaults] dictionaryForKey:@"DicKey"];

Si vous voulez un dictionnaire mutable, utilisez simplement mutableCopy :

NSMutableDictionary *mutableRetrievedDictionary = [[[NSUserDefaults standardUserDefaults] objectForKey:@"DicKey"] mutableCopy];

7voto

KkMIW Points 554
NSMutableDictionary *profileDictionary = [[NSMutableDictionary  alloc] init];
[profileDictionary setObject:txt_Username.text forKey:@"USERNAME_KEY"];
[profileDictionary setObject:txt_Password forKey:@"PASSWORD_KEY"];
[[NSUserDefaults standardUserDefaults] setObject:profileDictionary forKey="PROFILE_KEY"];
[[NSUserDefaults standardUserDefaults] synchronize];

C'est ce à quoi vous vous attendiez.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X