как хранить NSMutableArray в NSUserDefaults - PullRequest
5 голосов
/ 14 января 2011

Скажите, пожалуйста, как я могу сохранить NSMutableArray в NSUserDefaults.

У меня есть массив данных (NSArray). Я хочу добавить этот массив в NSMutableArray, который называется mArray.

[mArray addObject:data];
[prefs setObject:mArray forkey:@"test"];
[prefs synchronize];

и хотите сохранить mArray значения в NSUserDefaults.Пожалуйста, скажите мне, как я могу сохранить и восстановить эти значения.Приведенный выше код хранит только последнее значение, не добавляя значение в NSUserDefaults.

Спасибо

1 Ответ

21 голосов
/ 14 января 2011

Вы не можете. См. http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/Reference/Reference.html,, в частности:

Значения, возвращаемые из NSUserDefaults неизменны, даже если вы установите изменяемый объект как значение. За Например, если вы установите изменяемую строку в качестве значения для «MyStringDefault», строка, которую вы позже получите, используя stringForKey: будет неизменным.

Вместо этого сделайте mutableCopy для массива, который вы извлекаете из NSUserDefaults, добавьте ваш объект, а затем установите новый массив обратно.

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