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