使用 iPhone 内置的通讯簿框架,如何将特定的联系人列表保存到 NSUserDefaults 中的数组中?我需要保存收件人列表以备后用。
如果用户在我的应用程序关闭后编辑联系人,我想确保我不会遇到问题。每个联系人是否有某种唯一 ID,我可以保存并稍后查找?
使用 iPhone 内置的通讯簿框架,如何将特定的联系人列表保存到 NSUserDefaults 中的数组中?我需要保存收件人列表以备后用。
如果用户在我的应用程序关闭后编辑联系人,我想确保我不会遇到问题。每个联系人是否有某种唯一 ID,我可以保存并稍后查找?
请注意这一点,我相信存在一个问题(至少在 OS3.0 之前),当用户同步他们的设备时,这个 ABRecordID 可能会改变。如果您再次依赖使用该 ID,这显然会导致问题。我不知道这是否仍然在 OS3.0 中发生。
http://discussions.apple.com/thread.jspa?threadID=1771736
只是需要注意的事情。
ABRecordID
的最肯定会发生变化(通过艰难的方式了解到这一点 - 由于多台机器接触同步)
Matt Gemmell 在iphone-dev-tips-for-synced-contacts上有一篇不错的文章
我不存储复合名称,而是 ABRecordId、名字、姓氏、电子邮件地址和电话号码(其中最后两个由我的应用程序直接使用)。
如果我没有受到打击
ABRecordRef aRef = ABAddressBookGetPersonWithRecordID(addressBook, aRecordId);
我使用一堆代码来查找姓氏、名字的潜在匹配项,然后通过电话号码对其进行优化。
最后,我正在为联系人关联生成的 UUID,以便从我与联系人关联的数据中抽象出所有这些(可能)模糊分辨率。
ABRecordRef 有一个 ABRecordID 属性,您应该能够使用它来唯一地标识它以供以后访问。