0

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

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

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

4

2 回答 2

2

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

于 2014-03-05T23:17:16.103 回答
0

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

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

要成功保存一个数组或字典,容器持有的所有对象(它们的类...)都必须符合<NSCoding>协议。更多关于这里的内容

于 2014-03-06T00:03:42.817 回答