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