我想使用新的 CoraData 模型创建应用程序的新版本(由其他人创建)。我的疑问是:核心数据模型通过更新是永久的。我想确保以前的 CoreData 模型不会对新版本的应用程序造成问题。
我必须遵循一些最佳实践吗?
我想使用新的 CoraData 模型创建应用程序的新版本(由其他人创建)。我的疑问是:核心数据模型通过更新是永久的。我想确保以前的 CoreData 模型不会对新版本的应用程序造成问题。
我必须遵循一些最佳实践吗?
目前尚不清楚您是否要保留旧的应用程序数据并进行迁移。
如果没有,那么在发布新模型时,当核心数据会看到模型与旧模型不同时,您可以使用以下方法擦除存储: [[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 功能、标准、用户界面发布全新的应用程序。