2011-01-14 4 views
5

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

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

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

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

Thanks

ответ

21

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

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

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

Смежные вопросы