在 Xcode 中保存 NSMutableArray 的其他方法
Posted
技术标签:
【中文标题】在 Xcode 中保存 NSMutableArray 的其他方法【英文标题】:Other ways to save an NSMutableArray in Xcode 【发布时间】:2014-03-05 23:15:25 【问题描述】:当我尝试将我的 NSMutableArray 保存到 NSUserDefaults 时收到一个错误,我已经阅读了足够多的内容来理解这一点,因为我的数组是这样的:
CustomClass *customObject;
NSMutableArray *mutArray = [[NSMutableArray alloc]initWithObjects:customObject,nil];
因为 mutArray 有一个非属性列表对象 (customObject),它既不能保存到 NSUserDefaults 也不能保存在 .plist 文件中,所以我需要另一种方法来保存它。
【问题讨论】:
Best way to save to nsuserdefaults for custom class?的可能重复 【参考方案1】:使CustomClass
实现< NSCoding >
协议,然后将实例归档为数据。现在您可以将数据添加到数组/plist。或将其保存到磁盘。
【讨论】:
【参考方案2】:当保存一个可变数组(或字典)时,它的“可变性”不应该让你感到困惑。您将保存它,就像保存它的非可变兄弟一样。
为了使它在加载时再次可变,您应该加载它并在加载的对象上调用mutableCopy
。我知道这不是你现在的问题,但我感觉很快就会出现。
要成功保存一个数组或字典,容器保存的所有对象(它们的类...)都必须符合<NSCoding>
协议。更多关于这个here on SO。
【讨论】:
以上是关于在 Xcode 中保存 NSMutableArray 的其他方法的主要内容,如果未能解决你的问题,请参考以下文章
在 Xcode 中保存 NSMutableArray 的其他方法
如何在 xCode 中保存 UIimages 数组(swift)