当uniqueid失败并且我的名字和名字相同的人时,如何解除多个ABRecord的冲突?

时间:2012-05-17 13:55:32

标签: iphone ios xcode addressbook

这可能是在杂草中,但我想我会把它扔到那里问。所以我正在构建一个应用程序,我需要在地址簿中引用信息,比如一个人的电话号码,但不想单独存储信息。基本上,每次用户加载应用程序时,我都会检查地址簿并获取信息,以防它们更新。

无论如何,我已经在iPhone编程文档中看到了这个:

  

“地址簿数据库中的每条记录都有唯一的记录标识符。除非删除该记录或重置MobileMe同步数据,否则该标识符始终引用相同的记录。记录标识符可以在线程之间安全传递。不保证在各设备之间保持不变。

     

保持对特定记录的长期引用的推荐方法是除了标识符之外还存储名字和姓氏,或者名字和姓氏的哈希值。按ID查找记录时,请将记录的名称与存储的名称进行比较。如果它们不匹配,请使用存储的名称查找记录,并存储记录的新ID。“

所以我担心或好奇的是让我说我​​存储了uid以及名字和姓氏。然后让我们说同步或设备转移或我的uids得到什么。现在让我们说我的地址簿包含两个用户“Bob Smith”的条目。

如果uids不再匹配且姓/名相同,你如何解除冲突呢?我的猜测是最终存储其他信息(例如电话号码,电子邮件等等),但这让我重新回到了不想存储超过必要信息的情况。我意识到这可能是一个0.0001%的时间问题,但我想我会把它扔出去看看你们都想到了什么。

感谢您的任何建议!

1 个答案:

答案 0 :(得分:0)

我正在努力解决同样的问题。但是通过我的解决方案,我可以(或实际上需要)存储多平台/多设备问题的所有内容。但是,如果你能够买到一两个额外的属性来真正找到两个人之间的区别(比如电子邮件地址和生日日期),你应该能够在大多数时间识别它们。如果没有,我想知道他们是不是真的是同一个人(同名,同样的电子邮件,同一个生日......像鸭子一样走路,像鸭子一样嘎嘎叫,足够了)。

我会说,这不是.0001%的时间,即。我和我父亲的名字一模一样(这种情况发生在我国很多人身上)。但我们绝对没有相同的电子邮件地址或生日日期。