来自docs&这些帖子很明显,iCloud重置可以改变给定联系人的ABRecordId(这似乎是苹果公司的懒惰编码,但我离题了),但我还没有找到明确的文档关于Id如何跨设备工作。
ABRecordId发布了ID如何更改的帖子:
Keeping a long-term reference to an IOS AddressBook entry
Is ABRecordID a reliable way to identify unique contacts?
假设用户没有启用iCloud或从不重置联系人,他们的iPhone对于他们的iPad上的同一个John Doe有相同的ABRecordId吗? iPod Touch?
我现在没有第二台设备,或者我自己测试一下。此外,似乎iCloud在我的单个iPhone 5上工作并不是很明显,所以即使使用第二台设备,我也不幸运。
也许更深层次的问题是:
1)如果在所有设备上启用了iCloud联系人同步,他们是否为给定记录共享相同的ID?
2)如果设备上没有启用iCloud,并且通过iTunes同步联系人,他们是否具有与通过iTunes同步的其他设备上相同的ID?
3)如果我在设备1上添加联系人,在设备2上添加不同的联系人,然后iCloud稍后同步,那将在一台设备上重写新创建的联系人的ID,或删除&重新创建两个设备上的联系人或类似的东西?
4)如果某人没有在任一设备上启用iCloud并在每个设备上创建了一堆不同的联系人,iCloud在启用时如何处理该ID?是否删除,合并了所有联系人,以及重现?合并?
如果除了iCloud更改它之外的设备之间的ID是一致的,那么这使我相信无论是否有人结婚,更改姓名,更换手机等,我都可以信赖我,只要我能够提前确定是否有大规模的iCloud重置。
我的假设是iCloud重置也会同步"同步"到其他设备,给他们留下相同的新ID。如果情况并非如此,那么我的多设备支持计划并不起作用,而且我需要对ID,名字,姓氏,电话号码的排列进行更加复杂的检查。 ,电子邮件等
该计划所依赖的最终假设是可以检测到iCloud重置,例如与以前名称相同的大部分联系人,但是新的Id。