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

谢谢!

有帮助吗?

解决方案

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top