如果我改变我的iOS应用程序上的xcdatamodel(例如添加一个实体和一些属性),那么当我尝试安装我的iOS应用程序的更新版本时,如果已经在设备(或模拟器)上安装了以前的版本 - 安装失败。我已经阅读了xcdatamodel包等的轻量级迁移,但无法解决安装问题。我的问题是;实际上是否可以将iOS应用程序(带有更改的数据模型)安装到具有先前版本的设备上。
答案 0 :(得分:0)
轻量级迁移应该可以满足您的需求,这是更好的解决方案! 检查您是否需要帮助http://www.raywenderlich.com/27657/how-to-perform-a-lightweight-core-data-migration
如果您遇到严重问题,可以删除SQL存储并在persistentStoreCoordinator方法中重新创建它。您将丢失所有用户数据。这对于调试很有用,但在生产中没那么多。
只需添加:
//delete the store
[[NSFileManager defaultManager] removeItemAtPath:storePath error:nil];
// recreate the store
if (![persistentStoreCoordinator_ addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
你的:
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {
如果看起来像:
if (![persistentStoreCoordinator_ addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) {