当我尝试将NSMutableArray保存到NSUserDefaults时收到错误,我已经阅读了足够的内容,因为我的数组是这样的:
CustomClass *customObject;
NSMutableArray *mutArray = [[NSMutableArray alloc]initWithObjects:customObject,nil];
因为mutArray有一个非属性列表对象(customObject),所以它既不能保存到NSUserDefaults也不能保存在.plist文件中,所以我需要另一种方法来保存它。
答案 0 :(得分:2)
让CustomClass
实现< NSCoding >
协议,然后将实例存档到数据。现在您可以将数据添加到数组/ plist。或者将其保存到磁盘。
答案 1 :(得分:0)
保存可变数组(或字典)时,其“可变性”不应该让您感到困惑。你会保存它,就像保存它的不可变兄弟一样。
为了在加载时再次使其可变,您应该加载它并在加载的对象上调用mutableCopy
。我知道现在这不是你的问题,但我觉得很快就会有。
要成功保存数组或字典,所有容器(它们的类......)容器保持必须符合<NSCoding>
协议。有关here on SO的更多信息。