Iphone 对持久密钥存档进行版本控制?

Iphone 对持久密钥存档进行版本控制?,iphone,cocoa-touch,nskeyedarchiver,Iphone,Cocoa Touch,Nskeyedarchiver,对于我当前的应用程序,我正在使用NSKeyedArchiver方法在发布之间将我的对象持久化到iPhone上。我想知道在创建此文件时使用版本号标记此文件是否有意义,以便将来当应用程序重新运行时,我们可以知道我们正在处理的数据类型是否需要迁移。对于像NSKeyedArchiver序列化的自定义对象的NSArray这样简单的东西,是否建议这样做?如果是,如何/在何处存放版本号 谢谢 如果您觉得格式会改变,那么是的,您需要某种方法来检测您正在处理的文件的版本。这样做的一个简单方法(因为您使用的是NSA

对于我当前的应用程序,我正在使用NSKeyedArchiver方法在发布之间将我的对象持久化到iPhone上。我想知道在创建此文件时使用版本号标记此文件是否有意义,以便将来当应用程序重新运行时,我们可以知道我们正在处理的数据类型是否需要迁移。对于像NSKeyedArchiver序列化的自定义对象的NSArray这样简单的东西,是否建议这样做?如果是,如何/在何处存放版本号


谢谢

如果您觉得格式会改变,那么是的,您需要某种方法来检测您正在处理的文件的版本。这样做的一个简单方法(因为您使用的是NSArray)是将版本号作为NSNumber添加到数组的开头或结尾。或者,对于实际上不改变文件的更复杂方法,可以将信息存储在单独的文件中(例如,使用链接文件名和版本号的NSDictionary)。或者,您可以使用user defaults系统来存储它,如果它来自旧版本,则更新该文件和user defaults密钥

我不会使用第二种方法,除非处理多个键控数据文件。在这三种方法中,我可能会选择最后一种,但可能还有其他更合理的方法