将联系人列表保存到NSUserDefaults

时间:2009-08-11 06:10:01

标签: iphone objective-c addressbook

使用iPhone的内置地址簿框架,如何在NSUserDefaults中将特定的联系人列表保存到阵列?我需要保存收件人列表以供日后使用。

如果用户在关闭应用程序后编辑联系人,我想确保不会遇到问题。每个联系人都有某种独特的ID,我可以保存并稍后查找吗?

3 个答案:

答案 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属性,您应该可以使用该属性来唯一标识它以供以后访问。