将ABRecordRef存储在核心数据中

Ben*_*son 4 core-data abrecordref

我想将ABRecordRef存储在核心数据的"客户端"实体中.

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

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

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

思想赞赏.

非常感谢

Bre*_*ddy 12

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

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