Core Data:falied to create persistentStoreCoordinator

错误描述

使用Core Data时碰到以下错误:

falied to create persistentStoreCoordinator The operation couldn’t be completed. (Cocoa error 134100.)

具体描述为:

reason = "The model used to open the store is incompatible with the one used to create the store"

产生原因

在数据库生成好之后,修改了其中一个属性的Optional选项。


Core Data:falied to create persistentStoreCoordinator_第1张图片
optional选项.png

修改该选项后,数据库发生改变,需要迁移。

解决办法

创建存储器NSPersistentStoreCoordinator时,开启两个选项:

  • NSMigratePersistentStoresAutomaticallyOption
  • NSInferMappingModelAutomaticallyOption

代码如下:

NSDictionary *options = @{NSMigratePersistentStoresAutomaticallyOption: @(YES),
                          NSInferMappingModelAutomaticallyOption: @(YES)};
// 为 persistentStoreCoordinator 指定本地存储的类型,这里指定的是 SQLite
[_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType
                                          configuration:nil
                                                    URL:sqliteURL
                                                options:options
                                                  error:&error];

这样就解决了。

可能引发此错误的操作:

  • 修改属性
  • 修改实体
  • 修改关联
  • 修改属性的optional选项

如果改动较大,还需要重新创建model才能解决问题。
详见:https://stackoverflow.com/questions/8881453/the-model-used-to-open-the-store-is-incompatible-with-the-one-used-to-create-the

你可能感兴趣的:(Core Data:falied to create persistentStoreCoordinator)