4

我想将 ABRecordRef 存储在核心数据的“客户端”实体中。

我在苹果文档中读到 ABRecordRef 是一种原始的 C 数据类型。据我所知,您只能在核心数据中插入对象。考虑到这一点,将其存储在核心数据中的最佳方式是什么?

我想过将其转换为 NSNumber 进行存储,但不知道如何将其转换回 ABRecordRef 以供使用。

我还认为我可以将它单独放入 NSArray/NSSet/NSDictionary 中,只是充当包装器,但不知道这是否愚蠢/效率低下/甚至会起作用。

想法赞赏。

非常感谢

4

1 回答 1

12

在我的一个应用程序中,我刚刚将 ABRecordGetRecordID() 作为 INT32 存储在 CoreData 存储中(因为 ABRecordID 是 int32_t),并将联系人姓名存储在 CoreData 存储中以便快速显示。这样,Record 信息就存储在它所属的 AddressBook 中,并且您刚刚在 CoreData 存储中存储了一个指向该记录的“指针”。

然后,您可以在自定义 Client NSManagedObject 中创建方便的包装访问器,它将 C 调用包装到 AB 框架以满足您的需求。

于 2012-02-21T06:18:43.517 回答