我是 iPhone 开发新手,您能告诉我如何序列化 AdressBook 记录吗?
我已阅读stackoverflow - How do I serialize a simple object in iPhone sdk ,但我还有疑问:
我应该扩展 ABRecordRef 吗?是否可以?或者我应该实现自己的类 NSObject?
(Mac forums 上有类似问题,但没有答案)
谢谢!
最佳答案
ABRecord 是一种不透明的 C 类型。它不是 Objective-C 意义上的对象。这意味着您无法扩展它,无法在其上添加类别,也无法向其发送消息。您唯一能做的就是调用 ABRecord Reference 中描述的函数。以 ABRecord 作为参数。
您可以做两件事来保留 ABRecord 周围引用的信息:
通过
ABRecordGetRecordID()
获取ABRecords ID。 ABRecordID 定义为 int32_t,因此您可以将其转换为 NSInteger 并将其存储在您喜欢的任何位置。您稍后可以从ABAddressBookGetPersonWithRecordID ()
或ABAddressBookGetGroupWithRecordID()
取回记录。但请注意,该记录可能会同时被用户或其他应用程序更改甚至删除。将记录内的所有值复制到标准 NSObject 子类,并使用 NSCoding 或其他技术来存储它。那么您自然不会从用户对记录所做的更改或添加中受益。
当然,您可以结合使用这两种方法。
关于iPhone SDK - 如何序列化 ABRecord?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3204712/