0

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

我必须遵循一些最佳实践吗?

4

1 回答 1

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 功能、标准、用户界面发布全新的应用程序。

于 2012-06-17T15:16:07.363 回答