我创建了一个使用实体模型构建器及其相关内容的 OSX 应用程序,为简单起见,请考虑只有两个 NSString 的实体。
该应用程序正在生产中并且工作正常,现在我需要向现有实体添加新属性(仅存在一个实体),但是使用新属性时,旧保存的文件不会打开,应用程序不会默默地打开它们并且控制台不包含任何错误/警告消息。
我需要加载旧的保存文件,考虑所有新属性都是可选的并且具有默认值(也在代码中,而不仅仅是在模型设计中) 所有现有属性继续存在,我只是添加新属性。
如何设计能够在实体模型发生变化时运行的应用程序?
最佳答案
从 OS X 10.5 开始,只要您在新版本中对数据模型进行更改,就有数据迁移功能可以为您提供帮助。
这里有一个很好的基本解释和示例:http://www.timisted.net/blog/archive/core-data-migration/
关于cocoa - 加载使用修改后的实体模型保存的 NSPersistentDocument 时如何保持兼容性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4601767/