新旧核心数据模型

时间:2012-06-17 15:04:37

标签: ios core-data submission

我想使用新的CoraData模型创建应用程序的新版本(由其他人创建)。 我的疑问是:核心数据模型通过更新是永久性的。我想确保以前的CoreData模型不会对新版本的App产生问题。

我是否应该遵循一些最佳做法?

1 个答案:

答案 0 :(得分:1)

目前尚不清楚是否要保留旧的应用数据并进行迁移。

如果没有,那么在发布新模型时,当核心数据看到模型与旧模型不同时,您可以使用以下方法擦除商店:     [[NSFileManager defaultManager] removeItemAtURL:storeURL error:nil];

然后重新创建您的商店:

[__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error];

会通知您商店不匹配
/**
 Returns the persistent store coordinator for the application.
 If the coordinator doesn't already exist, it is created and the application's store added to it.
 */
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator

方法,您通常会在appDelegate中找到它。

基本上你有两个选择:根据你的新模型创建一个新商店(旧数据会消失)或者将你的旧模型迁移到新模式(根据你要做的事情可能吗?)

如果应用程序根本不同,您可以考虑发布“新应用”而不是新版本。然后,您需要将用户重定向到新应用,就像旧应用中的消息一样。基本上,当您希望老用户“按原样”保留他们的应用程序时,因为它符合旧的iOS版本并使用全新的iOS功能,标准和用户界面发布全新的应用程序。