我正在使用CoreData从预先填充的sqlite数据库中读取数据。除非我决定将另一个实体添加到CoreData模型(以及另一个表到sqlite数据库),否则一切都很好。我尝试了几件事,包括在Xcode中对模型进行更改,删除sqlite数据库,然后希望它像过去那样生成一个新的数据库。
然而无论我尝试过什么,我都会收到此错误:
用于打开商店的模型与以前的模型不兼容 创建商店。
也许我没有以正确的方式做到这一点,但看起来Xcode很难改变数据模型,这在我开发应用程序时对我没有意义。
答案 0 :(得分:1)
通常,如果您删除应用并重新创建它,项目附带的样板代码将为您生成一个新的(和您说的,兼容的)数据库。
此外,CoreData旨在用作具有持久性的对象图;由于提供这个是生成的SQLite DB,它对自己的业务做了什么。
如果您所说的是:'我有一个有效的CoreData存储文件和模型,而我正在尝试手动升级商店文件以匹配新模型',那么您违反了框架的规则。要将不兼容的存储转换为新模型,您需要使用versioning and mapping models(不直接触及SQLite DB)。