我正在开发一个使用Core Data和SQLite的应用程序。 SQLite数据库用于检索数据。我在SQLite数据库中填充了数据,然后我使用轻量级迁移为我的实体添加了一些新属性。
现在我已经使用sqlitebrowser更改了SQLite文件,并为其添加了新列(对于已添加到数据模型的新属性)和填充了一些数据的列。但是当我获取数据时,这个新列没有显示任何内容。
我运行项目时没有出错;但是如何更改SQLite文件呢?我是否必须手动更改SQLite文件?
我的应用程序在轻量级迁移之前完美运行。我的问题看起来像这样:link但我正确地进行了轻量级迁移。我的应用程序喜欢iPhoneCoreDataRecipes by apple示例代码。我在我的app.how中使用预先填充的sqlite数据库我可以更改sqlite db吗?我知道每个实体都是模型,表是sqlite db,每个属性都是sqlite中的表格列?我manualy将新列添加到sqlite文件(ZNOTE)并填充它。但是当我从sqlite中获取时它没有显示任何内容。
答案 0 :(得分:0)
如果您使用的是Core Data,则无法通过编辑SQLite文件来修改SQLite架构并期望它能够正常工作。您必须使用Xcode中的Core Data模型编辑器添加新属性。当应用程序运行时,所有Core Data都知道您的SQLite文件是模型文件告诉它的内容。如果您修改了架构但未修改模型文件,Core Data将无法了解您的更改,并可能损坏您的数据或使应用程序崩溃。
核心数据不是SQLite的包装器;它使用了一个非常不同的API,而SQLite是一个你应该不关心的实现细节。
如果您不熟悉如何更改Core Data模型,请查看Apple的Core Data Model Versioning and Data Migration。