在Xcode中保存NSMutableArray的其他方法

时间:2014-03-05 23:15:25

标签: ios save nsuserdefaults property-list

当我尝试将NSMutableArray保存到NSUserDefaults时收到错误,我已经阅读了足够的内容,因为我的数组是这样的:

CustomClass *customObject;
NSMutableArray *mutArray = [[NSMutableArray alloc]initWithObjects:customObject,nil];

因为mutArray有一个非属性列表对象(customObject),所以它既不能保存到NSUserDefaults也不能保存在.plist文件中,所以我需要另一种方法来保存它。

2 个答案:

答案 0 :(得分:2)

CustomClass实现< NSCoding >协议,然后将实例存档到数据。现在您可以将数据添加到数组/ plist。或者将其保存到磁盘。

答案 1 :(得分:0)

保存可变数组(或字典)时,其“可变性”不应该让您感到困惑。你会保存它,就像保存它的不可变兄弟一样。

为了在加载时再次使其可变,您应该加载它并在加载的对象上调用mutableCopy。我知道现在这不是你的问题,但我觉得很快就会有。

要成功保存数组或字典,所有容器(它们的类......)容器保持必须符合<NSCoding>协议。有关here on SO的更多信息。