J'ai un NSMutableDictionary, et je lui ai ajouté des valeurs (plusieurs valeurs de paire de clés). Maintenant, je dois enregistrer ce NSMutableDictionary dans un objet NSUserDefaults.
1.) Mon code comme suit; Je ne sais pas si c'est correct, et j'ai également besoin de savoir comment récupérer le NSMutableDictionary à partir du NSUSerDefault?
2.) Après avoir récupéré le NSMutableDictionary, je dois l'enregistrer 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];
Votre code est correct, mais la seule chose que vous devez garder à l'esprit est que NSUserDefaults
ne fait pas de 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];
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];
Voilà ce que vous attendiez.