[英]Is there a “uniqueID” type property for address book contacts?
我正在制作一個涉及用戶聯系人的游戲,但需要一種方法來唯一識別每個聯系人。 這是因為用戶可以輕松更改給定聯系人的姓名,電話號碼或其他屬性。 有沒有辦法做到這一點?
您可以使用ABRecordGetRecordID()
來獲取記錄的唯一ID。 它返回一個ABRecordID
,它是int32_t
的typedef。
ABRecordGetRecordID()是您可以使用的API。 但是,Apple文檔確實指出了有關此API返回的ABRecordID的一些值得注意的要點。
通訊簿數據庫中的每條記錄都有唯一的記錄標識符。 除非刪除該記錄或重置數據,否則此標識符始終引用相同的記錄。 記錄標識符可以在線程之間安全地傳遞。 不保證它們在各種設備上保持不變。
根據蘋果指南建議的方法是
保持對特定記錄的長期引用的推薦方法是除了標識符之外還存儲名字和姓氏,或者名字和姓氏的哈希值。 按ID查找記錄時,請將記錄的名稱與存儲的名稱進行比較。 如果它們不匹配,請使用存儲的名稱查找記錄,並存儲記錄的新ID。
在我的應用程序中,我還檢查聯系人的創建日期,因為ABRecordID的名稱可能已被用戶更改。 聯系人的創建日期在設備重置時不會更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.