在 Iphone 中使用 Core Data 从 SQLite 数据库中获取主键值

Posted

技术标签:

【中文标题】在 Iphone 中使用 Core Data 从 SQLite 数据库中获取主键值【英文标题】:Get Primary Key Value From SQLite database using Core Data in Iphone 【发布时间】:2009-09-04 07:53:39 【问题描述】:

我想在我的应用程序中使用核心数据和后端 Sqlite 存储。

但我需要插入后的主键(自动整数)值,我想将此主键值发送到 Web 服务器。

有没有办法通过核心数据功能从sqlite数据库中获取记录的主键?

我不想要 NsmanagementObject ObjectID 的唯一 ID

谢谢, 斯里达尔

【问题讨论】:

【参考方案1】:

您无法获取 Core Data 表的主键 - 它是被故意抽象出来的。

如果你需要某种外部可寻址的身份属性,你可以自己滚动,但不清楚为什么你不想使用 NSManagedObjectID,这是最接近核心数据中“ID”列的东西-土地。有一个类别可以轻松地将其转换为可以存储在应用程序外部的 URI。

如果您想自己动手,请插入 NSManagedObject 生命周期方法,例如 willSave 等...

【讨论】:

【参考方案2】:

使用sqlite3_last_insert_rowid(sqlite3*)函数

【讨论】:

Core Data 将后端抽象出来。它不允许您获取底层数据库,因为 (1) 可能没有,并且 (2) 即使有,它的架构无论如何都是核心数据实现细节。

以上是关于在 Iphone 中使用 Core Data 从 SQLite 数据库中获取主键值的主要内容,如果未能解决你的问题,请参考以下文章

难以调试 iPhone Core Data 错误

如何在 Mac 和 iPhone 之间同步 Core-Data 应用程序?

iPhone Core Data 不会从 Sqlite3 获取任何数据

iPhone 4 iOS 5 如何使用 Core Data 保存 MPMediaItem?

Core Data iphone调试指针

iPhone Core Data 对象添加到 NSMutableArray