版本化持久性密钥存档?

时间:2009-08-18 23:33:06

标签: iphone cocoa-touch nskeyedarchiver

对于我当前的应用程序,我使用NSKeyedArchiver方法在启动之间将我的对象持久保存到iPhone。我想知道在使用版本号创建文件时标记此文件是否有意义,以便将来当应用程序转换时我们将知道我们正在处理的数据类型是否需要迁移。这是否推荐用于使用NSKeyedArchiver序列化的自定义对象的NSArray这么简单?如果是这样,如何/在哪里存储版本号?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您认为格式会发生变化,那么是的,您需要一些方法来检测您正在使用的文件版本。一个简单的方法(因为你正在使用NSArray)就是简单地将版本号作为NSNumber添加到数组的开头或结尾。或者,对于实际上不会更改文件的更复杂的方法,您可以将信息存储在单独的文件中(例如,使用链接文件名和版本号的NSDictionary)。或者,您可以使用用户默认系统来存储它,如果它是旧版本,则更新文件和用户默认密钥。

除非您处理多个键控数据文件,否则我不会使用第二种方法。在这三个中,我可能会选择最后一个,但可能还有其他一些方法可以做到更有意义。

相关问题