Решението, което изглежда работи за мен, е, че съхранявам идентификаторите на контактите, идентификаторите на адреса, името на контакта и адреса в моята база данни. След това предприемам подход с няколко стъпки.
Търсене на контакт:
Опитвам се да намеря контакта въз основа на съхранените contact.identifiers, които вече съм запазил.
Ако намеря 1 контакт (съвпадащ идентификатор) =› Страхотно! След това се опитвам да съпоставя намерения контакт с моя адрес.идентификатори. Още веднъж, ако намеря само 1 съвпадение, ние сме супер! Ако не, отивам да се опитам да намеря адрес (вижте по-долу)
Ако не намеря контакти (няма съответстващи идентификатори) =› Опитвам се да намеря контакта въз основа на името на контакта, което бях запазил преди това. Ако намеря съвпадение, отивам да се опитам да намеря съвпадащия адрес (вижте по-долу).
Търсене на адрес:
Тъй като в този момент имам запис в CNContact, който смятам, че съвпада, разглеждам всеки от техните пощенски адреси и го сравнявам с улица/град/щат/пощенски код/ държава, която съм съхранил в моята база данни.
Ако намерим това перфектно съвпадение, актуализирам своите идентификатори, за да включа новите идентификатори на адрес/контакт
Ако в крайна сметка не намерим съвпадение, давам на потребителя опция ръчно да избере контакта/адреса от своето устройство.
person
user7616911
schedule
08.10.2020