【问题标题】:New and old CoreData model新旧CoreData模型
【发布时间】:2012-06-17 15:04:36
【问题描述】:

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

我必须遵循一些最佳做法吗?

【问题讨论】:

    标签: ios core-data submission


    【解决方案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-04-02
    • 1970-01-01
    • 1970-01-01
    • 2011-04-13
    • 2022-07-26
    • 2023-04-02
    • 1970-01-01
    • 2020-04-10
    • 1970-01-01
    相关资源
    最近更新 更多