如何判断iOS中的联系人是否重复?

bprjcwpo  于 2023-06-07  发布在  iOS
关注(0)|答案(2)|浏览(202)

bounty还有7小时到期。回答此问题可获得+200声望奖励。daniel希望引起更多关注这个问题:我希望回答的人能够在iOS中成功地执行代码,以检查我的应用的共享扩展从其他iOS应用接收的联系人是否在当前设备上的联系人存储中有重复。

Apple使用什么标准来确定作为电子邮件附件发送的vCard是否有副本?我认为重复之间必须有更多的共同点,而不仅仅是名字和姓氏?苹果公司是否说名字、姓氏和地址是否有足够的相似性,可以认为两个联系人彼此重复?
我在stackoverflow上的答案中找到了代码,但它们似乎使用了程序员自己的标准,而不是苹果的标准。

drnojrws

drnojrws1#

Apple使用什么标准来确定作为电子邮件附件发送的vCard是否有副本?
俗话说:“知道的人不说话。说话的人不知道。
没有苹果员工会在这里透露这类信息,苹果之外的任何人都无法权威地知道标准是什么。你可以用各种联系人和vCard做一些测试,可能会得出一个至少符合当前iOS版本行为的答案,但不要过于依赖它;该标准可以随着任何iOS更新而改变。

hmmo2u0o

hmmo2u0o2#

这是一个猜测的答案,但仍然是一个答案!只是不完全确定,因为我不在苹果公司(这个问题也不是一个问题),但我感觉到的行为是没有匹配。话虽如此如果你下载了一个“卡”(我会称之为卡,以更好地匹配你的行话,但它是一个联系人)。iOS首次不会将其检测为重复。它将正常下载。如果我尝试再次下载相同的卡(让我们说通过WhatsApp),然后它会检测到重复,对我来说是一个id或最可能的UUID与固定种子使用卡的数据。
另一种选择是卡的数据使用一些摘要(md5?)并保存此摘要作为ID保存卡可能在CoreData(sqlite)中。因此,当一个“新”卡进来时,“复制”被检测到。
这是新卡。但是,当苹果检测到重复作为合并卡的警告时,该怎么办?
这,对我来说,是一个后台线程/队列,做相同的摘要,去卡片的数据(不能永远知道什么字段,对我来说,这是所有的字段),然后存储在另一个字段“唯一性”摘要,当这个摘要匹配另一个摘要已经计算的联系人应用程序警告重复。
当然,这都是我在做一些使用Contacts API的应用程序时的猜测。这是一个相对较新的功能。
致上,

相关问题