Сохранение NSDictionary в NSUserDefaults - PullRequest
46 голосов
/ 30 марта 2012

У меня есть NSMutableDictionary, и я добавил значения к нему (несколько значений пары ключей).Теперь мне нужно сохранить этот NSMutableDictionary в объект NSUserDefaults.

1.) Мой код следующий;Я не уверен, что это правильно, а также мне нужно знать, как извлечь NSMutableDictionary из NSUSerDefault?

2.) После получения NSMutableDictionary мне нужно сохранить его в NSDictionary.Как я мог это сделать?

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

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

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

Ответы [ 2 ]

82 голосов
/ 30 марта 2012

Ваш код верен, но одну вещь, которую вы должны иметь в виду, это то, что NSUserDefaults не различает изменяемые и неизменяемые объекты, поэтому, когда вы вернете его, он будет неизменным:*

Если вы хотите непостоянный словарь, просто используйте mutableCopy:

NSMutableDictionary *mutableRetrievedDictionary = [[[NSUserDefaults standardUserDefaults] objectForKey:@"DicKey"] mutableCopy];
6 голосов
/ 11 ноября 2014
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];

Это то, что вы ожидали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...