Macos reason=“用于打开存储的模型与用于创建存储的模型不兼容”

Macos reason=“用于打开存储的模型与用于创建存储的模型不兼容”,macos,core-data,Macos,Core Data,我正在使用核心数据创建os x应用程序。当我修改模型时。出现了图像中显示的错误。显示的原因是用于打开存储的模型与用于创建存储的模型不兼容;如何修复此错误。我通过清除iOS应用程序中的模拟器修复了相同的错误。如何在OSX应用程序中修复此问题 如果查看设置persistentStoreCoordinator的代码,它应该会告诉您对象的存储位置和文件名。Apple模板中的默认位置由应用程序委托中的applicationDocumentsDirectory方法提供。非基于文档的核心数据应用程序的数据存储

我正在使用核心数据创建os x应用程序。当我修改模型时。出现了图像中显示的错误。显示的原因是用于打开存储的模型与用于创建存储的模型不兼容;如何修复此错误。我通过清除iOS应用程序中的模拟器修复了相同的错误。如何在OSX应用程序中修复此问题


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

非基于文档的核心数据应用程序的数据存储通常位于~/Library/application/Support/com.mydomain.myapp/cococoaappcd.storedata中

根据文件内容是否为一次性文件,重命名或删除此文件

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


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

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

    // 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))

除了易于查看之外,我还可以选择/copy/pass来在sqliteBrowser中使用。

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