我是iPhone开发的新手,您能建议我如何序列化AdressBook记录吗?
我已阅读stackoverflow - How do I serialize a simple object in iPhone sdk,但仍然有疑问:
我应该扩展ABRecordRef吗?可能吗?还是应该实现自己的类NSObject?

(类似的问题在Mac forums上,没有答案)

谢谢!

最佳答案

ABRecord是不透明的C类型。从Objective-C的角度来看,它不是对象。这意味着您无法扩展它,无法在其上添加类别,也无法向其发送消息。您唯一可以做的就是使用ABRecord作为参数调用ABRecord Reference中描述的函数。

您可以做两件事以使ABRecord arround引用的信息得以保留:

  • 通过ABRecordGetRecordID()获取ABRecords id。 ABRecordID定义为int32_t,因此您可以将其转换为NSInteger并将其存储在任意位置。您稍后可以从ABAddressBookGetPersonWithRecordID ()ABAddressBookGetGroupWithRecordID()取回记录。但是请注意,该记录可能同时被用户或其他应用更改甚至删除。
  • 将记录内的所有值复制到标准NSObject子类,并使用NSCoding或其他技术来存储它。这样,您就不会从用户本可以进行的记录更改或添加中受益。

  • 当然,您可以将两种方法结合使用。

    关于iphone - iPhone SDK-如何序列化ABRecord?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5625881/

    10-09 02:24