我有一个功能强大的应用程序,主要是面向数据库的。我的客户目前正在使用该应用程序,它有大量预先存在的保存数据(注意:它全部是本地的,不保存在在线数据库中)。问题是,我知道当我更新数据模型时,我将不得不卸载然后重新安装应用程序,否则它将因数据模型中的不一致而崩溃。有什么方法可以在更新数据模型的同时保存数据吗?保存核心数据?
Q
保存核心数据?
0
A
回答
3
我知道当我更新数据模型时,我将不得不卸载然后重新安装应用程序,否则它将因数据模型中的不一致而崩溃。
不是真的,除非你不打算处理这个变化。核心数据支持将数据从一个数据模型版本迁移到新数据模型,以便现有数据存储更新以使用新模型,而无需卸载或执行其他极端步骤。在大多数情况下,它甚至是自动的 - 你只需告诉它来处理变化。
NSDictionary *options = @{NSMigratePersistentStoresAutomaticallyOption:@YES,
NSInferMappingModelAutomaticallyOption:@YES};
if (![psc addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error]) {
....
}
如果你改变只包括一个或多个以下的这一工程:
- 添加或移除属性
- 更改属性的具体地说,在添加持久性存储时,使用
options
参数“可选”标志(假设您将它设为非可选项,则提供默认值) - 重命名实体或属性
- 添加,删除或重命名实体
- 添加父母或子女的实体,或移动属性不同点在层次
- 改变从一对一的关系,以一对多
如果你重命名无论如何,您需要设置重命名标识符,以便Core Data知道如何迁移。
如果这还不够,Core Data支持非自动迁移有几种不同的方式。这在Apple的文档中有详细介绍,我不会在这里重现。
+0
这正是我所期待的。我不知道我可以自动迁移。谢谢。 –
相关问题
- 1. 核心数据保存
- 2. 保存NSNumber核心数据
- 3. 核心数据:未保存
- 4. 将核心数据保存到核心数据
- 5. 将核心数据保存到核心数据
- 6. 未保存核心数据数据
- 7. 核心数据数据库不保存
- 8. plists vs核心数据保存参数
- 9. 将数组保存到核心数据
- 10. Swift 3多核心数据保存
- 11. 无法保存核心数据
- 12. 在核心数据中保存CFDictionaryRef
- 13. 核心数据保存异常
- 14. 核心数据保存进度
- 15. 保存核心数据布尔字段
- 16. iOS背景保存在核心数据
- 17. 保存核心数据中的PHAsset?
- 18. 问题保存图像核心数据
- 19. 核心数据无法保存NSManagedObjectContext
- 20. 将照片保存至核心数据
- 21. 保存UIAlert TextField到核心数据
- 22. 核心数据:setPrimitiveValue并保存更改
- 23. UITableViewCell图像+保存到核心数据
- 24. 在核心数据中保存照片
- 25. 保存图像到核心数据
- 26. 核心数据保存错误
- 27. 将图像保存到核心数据?
- 28. 核心数据保存问题
- 29. 在线程中保存核心数据
- 30. 保存核心数据导致崩溃
http://mobile.tutsplus.com/tutorials/iphone/core-data_schema-versioning-and-lightweight-migrations/ –