2014-11-03 134 views
0

地址簿更改時是否有通知的方法? 即當用戶正在編輯聯繫電話號碼時。ABAddressBook更改監聽器

我問這個問題的原因是因爲我的應用程序有一個自己的聯繫人表,這是我從用戶的地址簿中取出的。我想知道何時更新他們的數據,而不是每次應用喚醒時都這樣做。

回答

1

我不知道有沒有辦法做你做什麼,但我可以給你一個重要的提示,當您檢查您的地址簿針對本地副本(如核心數據):

有一個唯一的ID (ABRecordID)分配給任何更改的聯繫人。不要依賴那個。從Apple DOC:

使用記錄標識

在通訊簿數據庫的每個記錄都有一個唯一的記錄 標識。該標識符始終指相同的記錄,除非 該記錄被刪除或數據被重置。記錄標識符可以是 在線程之間安全傳遞。他們不保證在設備上保持不變。

保持對特定 記錄的長期參考的推薦方式是存儲名稱的第一個和最後一個名字,或者除了標識符外還存儲第一個和最後一個名字的散列。當您通過 ID查找記錄時,將記錄名稱與您的存儲名稱進行比較。如果他們不匹配 ,請使用存儲的名稱查找記錄,並將新的ID 作爲記錄存儲。

https://developer.apple.com/library/ios/documentation/ContactData/Conceptual/AddressBookProgrammingGuideforiPhone/Chapters/DirectInteraction.html