[英]Save Core Data?
我有一个主要面向数据库的功能应用程序。 我的客户当前正在使用该应用程序,并且它具有许多预先存在的已保存数据(请注意:这些数据都是本地的,未保存在在线数据库中)。 问题是,我知道当我更新数据模型时,我必须先卸载,然后重新安装应用程序,因为否则它将由于数据模型中的不一致而崩溃。 有什么方法可以在仍然更新我的数据模型的同时保存数据吗?
我知道当我更新数据模型时,我必须先卸载,然后重新安装应用程序,因为否则它将由于数据模型不一致而崩溃。
这是不正确的,除非您不介意处理更改,否则不会这样。 Core Data支持将数据从一种版本的数据模型迁移到新版本,以便现有数据存储区可以更新为使用新模型,而无需卸载或执行其他极端步骤。 在大多数情况下,它甚至是自动的-您只需要告诉它处理更改即可。 具体来说,在添加持久性存储时使用options
参数:
NSDictionary *options = @{NSMigratePersistentStoresAutomaticallyOption:@YES,
NSInferMappingModelAutomaticallyOption:@YES};
if (![psc addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error]) {
....
}
如果您的更改仅包含以下一项或多项,则该方法有效:
如果要重命名,则需要设置重命名标识符,以便Core Data知道如何迁移。
如果这还不够 ,Core Data可以通过两种不同的方式支持非自动迁移。 苹果文档中对此进行了详细介绍,在此不再赘述。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.