2012-02-19 130 views
4

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

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

我想过把它转换成存储的NSNumber,但不知道如何将它转换回ABRecordRef使用。

我还以为我可以把它放在一个NSArray/NSSet/NSDictionary自己只是作为一个包装,但不知道这是愚蠢/效率低下甚至会工作。

想法感激。

非常感谢

回答

12

在我的应用程序之一,我只是存储在ABRecordGetRecordID()作为CoreData商店INT32(因为一个ABRecordID是int32_t),并保存在联系人姓名与CoreData商店快速显示目的。这样Record记录信息被存储在它所属的AddressBook中,并且你刚刚在你的CoreData存储中存储了一个“指针”。

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