2009-08-11 76 views
3

使用iPhone的內置地址簿框架,如何在NSUserDefaults中將聯繫人的特定列表保存到數組?我需要保存收件人列表供以後使用。將聯繫人列表保存到NSUserDefaults

我想確保在應用程序關閉後用戶編輯聯繫人時不會遇到問題。是否有某種每個聯繫人都有的唯一ID,以後我可以保存並查找?

回答

2

ABRecordID最肯定做改變(這已經瞭解到硬盤的方式 - 爲多機聯繫人同步的結果)

馬特Gemmell具有iphone-dev-tips-for-synced-contacts

一個很好的書面記錄,我不存儲複合名稱,而是ABRecordId,名字,姓氏,電子郵件地址和電話號碼(最後兩個由我的應用程序直接使用)。

如果我不上

ABRecordRef aRef = ABAddressBookGetPersonWithRecordID(addressBook, aRecordId); 

我用一串代碼,以找到姓,名潛在的匹配,然後通過電話號碼完善它得到一擊。

作爲最後一項,我將聯繫人生成的UUID關聯起來,以便將所有這些(可能)模糊分辨率從我與聯繫人關聯的數據中抽象出來。

0

ABRecordRef有一個ABRecordID屬性,您應該可以使用它來唯一標識它以便以後訪問。

+0

如上所述,由於同步,這是不可靠的。或許在09年,情況並非如此。 – MrTristan 2013-08-28 13:13:56

2

要小心這個,我相信有一個問題(至少在OS3.0之前),當用戶同步他們的設備時,這個ABRecordID可能會改變。如果你依靠再次使用該ID,這顯然會導致問題。我不知道這是否仍然在OS3.0中發生。

http://discussions.apple.com/thread.jspa?threadID=1771736

只是要注意。