我在尝试访问多个设备之间的相同联系时遇到了一些问题。我的目标是让用户选择联系人并选择电话号码和电子邮件地址,然后将其存储在数据库中。如果用户在其他设备上打开应用程序,我希望选择相同的联系人。
我希望在这种情况下使用CNContact.identifier,但它似乎是特定于设备的ID。我可以存储每个设备的标识符,但这需要用户匹配联系人并且不是理想的接缝。
这不会像它应该是困难的缝合,但显然我错过了一些东西。思考?
答案 0 :(得分:0)
适合我的解决方案是,我将联系人标识符,地址标识符,联系人姓名和地址存储在我的数据库中。然后,我采取了多步骤的方案。
搜索联系人:
我尝试根据已存储的contact.identifiers查找已找到的联系人。
如果我找到1个联系人(标识符匹配)=>很好!然后,我尝试将找到的联系人与我的address.identifiers匹配。再一次,如果我只找到1个比赛,那就太好了!如果没有,那么我去尝试寻找地址(见下文)
如果我没有找到联系人(没有匹配的标识符)=>我尝试根据之前保存的联系人姓名来查找联系人。如果确实找到匹配项,那么我将尝试尝试找到匹配的地址(见下文)。
搜索地址:
自从这时起,我有了一个我认为匹配的CNContact记录,因此我查看了它们的每个postalAddresses并将其与我存储在数据库中的Street / city / state / zipcode / country进行比较。
如果我们找到完美的匹配,那么我将更新我的标识符以包括新的地址/联系人标识符
如果我们最终找不到匹配项,我给用户一个选项,可以从他们的设备中手动选择联系人/地址。