reason = "开店的型号和开店的型号不兼容"

Posted

技术标签:

【中文标题】reason = "开店的型号和开店的型号不兼容"【英文标题】:reason = "The model used to open the store is incompatible with the one used to create the store" 【发布时间】:2016-09-12 10:14:22 【问题描述】:

我正在使用核心数据创建 os x 应用程序。当我修改模型时。发生了图像中显示的错误。显示的原因是“用于打开商店的模型与用于创建商店的模型不兼容”;如何解决此错误。我通过清除 ios 应用程序中的模拟器修复了同样的错误。如何在 os x 应用程序中解决此问题。

enter image description here

【问题讨论】:

【参考方案1】:

如果您查看设置persistentStoreCoordinator 的代码,它应该会告诉您对象的存储位置和文件名。 (Apple 模板中的默认位置由应用程序委托中的 applicationDocumentsDirectory 方法提供。)

【讨论】:

【参考方案2】:

非基于文档的 Core Data 应用程序的数据存储通常位于~/Library/Application/Support/com.mydomain.myapp/CocoaAppCD.storedata

重命名或删除此文件(取决于其内容是否为一次性)。

重新启动您的应用程序将重新创建没有数据的文件,您可以开始根据新模型重新填充它。

对于您的应用程序的生产版本,模型更改将需要正式的轻量级或大量迁移以保留用户的数据。

【讨论】:

【参考方案3】:

为方便起见,在启动时,我将数据库的位置打印到控制台,如下所示:

    // Get / print location of database for use in testing / debugging

    let paths = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)
    let path = paths[0] + "/LocalStore.sqlite"
    print(path.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines))

除了易于查看之外,我还可以选择/复制/粘贴它以在 sqliteBrowser 中使用。

【讨论】:

【参考方案4】:

通过单击键盘上的选项按钮选择 Finder 并从 Go 转到 Library。然后使用您的应用程序包标识符搜索库。删除文件夹。然后重新启动您的应用程序将重新创建没有数据的文件夹,您可以开始根据您的新模型重新填充它。

【讨论】:

以上是关于reason = "开店的型号和开店的型号不兼容"的主要内容,如果未能解决你的问题,请参考以下文章

店铺 开店

饿了么商家版登录显示开店信息

空白 xcode 应用程序生成意外错误

核心数据:如何处理新版本?

微商如何开店

在亚马逊开店注册账号需要啥那些资料呢?