如何将NSMutableArray存储在NSUserDefaults中

5

请告诉我如何将NSMutableArray存储到NSUserDefaults中。

我有一个名为data的数组(NSArray)。我想将这个数组添加到名为mArrayNSMutableArray中。

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

我想将mArray中的值存储在NSUserDefaults中。请告诉我如何存储和检索这些值。上面的代码只能存储最后一个值,而不能将值追加到NSUserDefaults中。
谢谢。
1个回答

21
你不能这样做。请参见http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/Reference/Reference.html,特别是:
从NSUserDefaults返回的值是不可变的,即使您将可变对象设置为值。例如,如果您将可变字符串设置为“MyStringDefault”的值,则稍后使用stringForKey:检索的字符串将是不可变的。
相反,请对从NSUserDefaults检索的数组进行mutableCopy,添加您的对象,然后将新数组设置回去。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接