0

我正在开发一个使用 Core Data 和 SQLite 的应用程序。SQLite 数据库用于检索数据。我用数据填充了 SQLite 数据库,然后我使用轻量级迁移为我的实体添加了一些新属性。

现在我已经用 sqlitebrowser 更改了 SQLite 文件,并向其中添加了新列(对于已添加到数据模型中的新属性)并用一些数据填充列。但是当我获取数据时,这个新列什么也没显示。

我运行项目时没有出错;但是我怎样才能改变 SQLite 文件呢?我必须手动更改 SQLite 文件吗?

我的应用程序在轻量级迁移之前完美运行。我的问题如下所示:链接,但我正确地进行了轻量级迁移。我的应用程序,例如 Apple 示例代码的 iPhoneCoreDataRecipes。我在我的应用程序中使用预填充的 sqlite 数据库。如何更改 sqlite db?我知道每个实体是模型是表是sqlite db,每个属性是sqlite 中的表列?我手动将新列添加到 sqlite 文件(ZNOTE)并填充它。但是当我从 sqlite 获取时它什么也不显示。

4

1 回答 1

0

如果您使用的是 Core Data,则无法通过编辑 SQLite 文件来修改 SQLite 模式并期望它能够正常工作。您必须使用 Xcode 中的 Core Data 模型编辑器添加新属性。当应用程序运行时,Core Data 所知道的关于你的 SQLite 文件的一切都是模型文件告诉它的。如果您修改了架构但没有修改模型文件,Core Data 将不知道您的更改,并且可能会损坏您的数据或使应用程序崩溃。

Core Data 不是 SQLite 的包装器;它使用了一个非常不同的 API,而 SQLite 是一个你不应该关心的实现细节。

如果您不熟悉如何更改 Core Data 模型,请查看 Apple 的Core Data Model Versioning and Data Migration

于 2016-08-18T17:03:48.347 回答