将ABRecordRef存储在核心数据中

时间:2012-02-19 21:57:52

标签: core-data abrecordref

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

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

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

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

赞赏的想法。

非常感谢

1 个答案:

答案 0 :(得分:12)

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

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