gpt4 book ai didi

iPhone SDK - 如何序列化 ABRecord?

转载 作者:行者123 更新时间:2023-12-03 16:10:19 24 4
gpt4 key购买 nike

我是 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 周围引用的信息:

  1. 通过ABRecordGetRecordID()获取ABRecords ID。 ABRecordID 定义为 int32_t,因此您可以将其转换为 NSInteger 并将其存储在您喜欢的任何位置。您稍后可以从 ABAddressBookGetPersonWithRecordID ()ABAddressBookGetGroupWithRecordID() 取回记录。但请注意,该记录可能会同时被用户或其他应用程序更改甚至删除。

  2. 将记录内的所有值复制到标准 NSObject 子类,并使用 NSCoding 或其他技术来存储它。那么您自然不会从用户对记录所做的更改或添加中受益。

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

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com