如何在NSUserDefaults中存储NSMutableArray

use*_*485 5 iphone objective-c

请告诉我如何可以存储 NSMutableArrayNSUserDefaults.

我有一个名为data(NSArray)的数组.我想在NSMutableArray被调用时添加这个数组mArray.

[mArray addObject:data];
[prefs setObject:mArray forkey:@"test"];
[prefs synchronize];
Run Code Online (Sandbox Code Playgroud)

并希望存储mArray价值NSUserDefaults.请告诉我如何存储和检索这些值.上面的代码只存储没有附加值的最后一个值NSUserDefaults.

谢谢

Jon*_*her 21

你不能.请参阅http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/Reference/Reference.html,特别是:

即使您将可变对象设置为值,NSUserDefaults返回的值也是不可变的.例如,如果将可变字符串设置为"MyStringDefault"的值,则稍后使用stringForKey:检索的字符串将是不可变的.

而是,创建从NSUserDefaults检索的数组的mutableCopy,添加您的对象,然后重新设置您的新数组.