在 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 将编译器标志保存在哪个文件中?

如何在 xCode 中保存 UIimages 数组(swift)

如何在 Xcode 中保存和加载图片

卸载视图时保存 UIImageView - Xcode 4.5.1

IOS 6.0 xcode 4.5 编译错误#import 代码保存在类外的文件中