2

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

无论如何,我在 iPhone Programming Doc 中读到了这个:

“通讯簿数据库中的每条记录都有一个唯一的记录标识符。此标识符始终引用同一条记录,除非该记录被删除或 MobileMe 同步数据被重置。记录标识符可以在线程之间安全传递。它们不能保证跨设备保持不变。

保持对特定记录的长期引用的推荐方法是存储名字和姓氏,或名字和姓氏的哈希值,以及标识符。当您按 ID 查找记录时,将记录的名称与您存储的名称进行比较。如果不匹配,则使用存储的名称查找记录,并存储记录的新 ID。”

所以我担心或好奇的是假设我已经存储了 uid 以及名字和姓氏。然后让我们说在同步或设备传输或任何我的 uid 被冲洗时。现在假设我的地址簿包含用户“Bob Smith”的两个条目。

鉴于 uid 不再匹配并且名字/姓氏相同,您如何解决此冲突?我的猜测是最终存储其他信息(例如电话号码、电子邮件等),但这让我回到了不想存储比必要信息更多的情况。我意识到这可能是一个 0.0001% 的时间问题,但我想我会把它扔出去看看大家的想法。

感谢您的任何建议!

4

1 回答 1

0

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

我会说,这不是 0.0001 % 的时间,即。我和我父亲的名字非常相似(这发生在我国的很多人身上)。但我们绝对没有相同的电子邮件地址或生日日期。

于 2012-07-15T00:10:22.197 回答