在 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 数据库中获取主键值的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Mac 和 iPhone 之间同步 Core-Data 应用程序?
iPhone Core Data 不会从 Sqlite3 获取任何数据