将NSArray数据保存到磁盘

时间:2014-07-13 17:49:32

标签: ios arrays cocoa-touch save

我有一个NSMutableArray,其中包含NSMutableDictionary&#39}。每个字典都有AVAssetNSURLNSString和两个UIImages。我想将我的数组保存到磁盘,以便每次关闭并打开我的应用程序时,我都可以加载数组并将URL转换为NSData个对象以播放音频并使用{{1对于其他一些动作。我知道我可以使用AVAssetsinitWithContentsOfFile保存并加载我的数组,这个答案非常有用:Saving a NSArray。但是,答案是从2009年开始的。这些天有更好的方法来保存和加载阵列吗?

1 个答案:

答案 0 :(得分:0)

至于您链接的答案,答案仍然有效。根据它,你不能以它提到的方式存储它。这是因为数组必须是plist格式兼容才能像这样保存。将数组解析为最低元素层次结构时,UIImage只是一个对象指针而且没有意义。

一种实用的方法是将UIImages存储为单独的文件,并将其路径存储为NSMutableDictionary对象的一部分。 AVAssets也是如此。当然,您需要设计解决方案才能完全实现这一目标。

存储非兼容对象的另一种方法是使用归档和取消归档功能。请参阅documentation。在这里,确保树中的每个对象都遵循协议NSCoding(可能你问题中的AVAsset不符合它,所以你需要一种方法来解决它)。例如,请参阅this answer并搜索相似内容。