我正在制作一个涉及用户联系人的游戏,但需要一种唯一标识每个联系人的方法。这是因为用户可以轻松更改给定联系人的姓名、电话号码或其他属性。有没有办法做到这一点?
问问题
1994 次
2 回答
4
您可以使用ABRecordGetRecordID()
来获取记录的唯一 ID。它返回一个ABRecordID
类型定义为int32_t
.
于 2012-10-28T02:15:06.040 回答
2
ABRecordGetRecordID() 是您可以使用的 API。但是,苹果文档确实说明了有关此 API 返回的 ABRecordID 的一些值得注意的点。
地址簿数据库中的每条记录都有一个唯一的记录标识符。此标识符始终引用相同的记录,除非该记录被删除或数据被重置。记录标识符可以在线程之间安全地传递。不能保证它们在不同设备上保持不变。
根据苹果指南建议的方法是
保持对特定记录的长期引用的推荐方法是存储名字和姓氏,或名字和姓氏的哈希值,以及标识符。当您按 ID 查找记录时,将记录的名称与您存储的名称进行比较。如果它们不匹配,则使用存储的名称查找记录,并存储记录的新 ID。
在我的应用程序中,我还在检查联系人的创建日期,因为 ABRecordID 的名称可能已被用户更改。设备重置后联系人的创建日期不会改变。
于 2014-11-27T18:57:56.120 回答