如何在NSUserDefaults中保存NSMutableArrays

时间:2011-01-26 10:06:12

标签: iphone

我有4个带有个人数据的NSmutablearrays。

现在我需要将它们分别保存在NSuserdefaults中并单独检索它们。

我怎么能这样做,

任何人都可以发一些代码。

提前感谢你。

1 个答案:

答案 0 :(得分:3)

数组的内容是什么?虽然NSUserDefaults可以存储数组,但它仅适用于包含NSData,NSString,NSNumber,NSDate,NSArray或NSDictionary的数组。如果您的数组中还有其他内容(自定义对象或除上述提示之外的其他Cocoa对象),则不能直接将其直接放入NSUserDefaults。

假设您的对象是正确的,您可以通过执行

来存储数组
[[NSUserDefaults standardUserDefaults] setObject:yourArray forKey:@"aKey"];

您可以使用arrayForKey:方法再次将其取回。请注意,当您这样做时,它将不再是可变数组:您可以在返回的数组上调用mutableCopy以获取可变数组。此外,如果您在将数组存储到NSUserDefaults后将其变异,则您的更改不会反映在应用的首选项中。

如果您有一系列不会进入NSUserDefaults的对象(即不在上面的列表中),那么所有对象都不会丢失:您需要查看NSCoding and archiving