将联系人列表保存到NSUserDefaults
问题描述:
使用iPhone的内置地址簿框架,如何在NSUserDefaults中将联系人的特定列表保存到数组?我需要保存收件人列表供以后使用。将联系人列表保存到NSUserDefaults
我想确保在应用程序关闭后用户编辑联系人时不会遇到问题。是否有某种每个联系人都有的唯一ID,以后我可以保存并查找?
答
ABRecordID
最肯定做改变(这已经了解到硬盘的方式 - 为多机联系人同步的结果)
马特Gemmell具有iphone-dev-tips-for-synced-contacts
一个很好的书面记录,我不存储复合名称,而是ABRecordId,名字,姓氏,电子邮件地址和电话号码(最后两个由我的应用程序直接使用)。
如果我不上
ABRecordRef aRef = ABAddressBookGetPersonWithRecordID(addressBook, aRecordId);
我用一串代码,以找到姓,名潜在的匹配,然后通过电话号码完善它得到一击。
作为最后一项,我将联系人生成的UUID关联起来,以便将所有这些(可能)模糊分辨率从我与联系人关联的数据中抽象出来。
答
ABRecordRef有一个ABRecordID属性,您应该可以使用它来唯一标识它以便以后访问。
答
要小心这个,我相信有一个问题(至少在OS3.0之前),当用户同步他们的设备时,这个ABRecordID可能会改变。如果你依靠再次使用该ID,这显然会导致问题。我不知道这是否仍然在OS3.0中发生。
http://discussions.apple.com/thread.jspa?threadID=1771736
只是要注意。
如上所述,由于同步,这是不可靠的。或许在09年,情况并非如此。 – MrTristan 2013-08-28 13:13:56