【问题标题】:Core data not displaying sqlite file data correctly核心数据未正确显示 sqlite 文件数据
【发布时间】:2025-12-08 18:10:02
【问题描述】:

我的 sqlite 表中的数据没有正确显示,而是显示了我在核心数据模型中设置的默认值。

我在我的 sqlite 表中添加了一个新字段并更新了我的核心数据模型。该属性的名称和数据类型与我刚刚在 sqlite 文件中添加的字段相同。

当我添加新的 core-data 属性时,我确保添加新的数据模型版本,然后设置该版本。

我还确保重置模拟器并清除 xcode 中的所有目标。

我没有收到任何错误,只是我无法让数据匹配。

感谢您的帮助。

【问题讨论】:

    标签: iphone objective-c ios core-data


    【解决方案1】:

    你不能直接弄乱 Core Data 的 sqlite 数据库。阔思the documentation:

    重要提示:虽然 Core Data 支持 SQLite 作为其持久存储类型之一,但 Core Data 无法管理任何任意 SQLite 数据库。为了使用 SQLite 数据库,Core Data 必须自己创建和管理数据库。

    正确的做法是更新Core Data模型,遵循Core Data Model Versioning and Data Migration Programming Guide,让Core Data自己处理更新SQLite数据库。

    【讨论】:

    • 感谢您的回复。如果我需要向 sqlite 表添加数据怎么办?
    • 创建一个 NSManagedObject 并保存。 Anomie 是对的——试图直接操作 sqllite 存储只会给你带来痛苦。
    • 忘记 Core Data 使用的是 SQLite 数据库。而是问“如果我需要向 Core Data 添加数据怎么办?”,然后研究这个问题。