我想将ABRecordRef存储在核心数据的“客户端”实体中。
我在苹果文档中读到ABRecordRef是原始C数据类型。据我所知,您只能在核心数据中插入对象。考虑到这一点,将其存储在核心数据中的最佳方法是什么?
我考虑将其转换为NSNumber进行存储,但不知道如何将其转换回ABRecordRef以供使用。
我还以为我可以把它放在一个NSArray / NSSet / NSDictionary中,只是作为一个包装器,但不知道这是否愚蠢/低效/甚至可以工作。
赞赏的想法。
非常感谢
答案 0 :(得分:12)
在我的一个应用程序中,我刚刚将ABRecordGetRecordID()作为INT32存储在CoreData存储中(因为ABRecordID是int32_t),并且还将联系人名称存储在CoreData存储中以便快速显示。这样,记录信息存储在它所属的AddressBook中,并且您刚刚存储了一个指向CoreData存储中记录的“指针”。
然后,您可以在自定义客户端NSManagedObject中创建方便的包装器访问器,它将C调用包装到AB框架以满足您的需要。