Является ли ABRecordId согласованным на устройствах пользователя, если предположить, что настройки iCloud не изменились?
Из документации и этих постов ясно, что сброс iCloud может изменить ABRecordId для данного контакта (что, кажется, ленивое кодирование со стороны Apple, но я отвлекся), но я не нашел четкой документации о том, как Id работает на устройствах,
Сообщения ABRecordId о том, как могут измениться идентификаторы:
Сохранение долгосрочной ссылки на запись адресной книги IOS
Является ли ABRecordID надежным способом идентификации уникальных контактов?
Предполагая, что у пользователя не включен iCloud или он никогда не сбрасывает контакты, имеет ли его iPhone тот же самый ABRecordId для того же Джона Доу, который есть на его iPad и iPod Touch?
У меня сейчас нет второго устройства, иначе я бы проверил себя. Кроме того, не похоже, что iCloud работает на моем одном iPhone 5, поэтому даже со вторым устройством мне не повезет.
Возможно, более глубокие вопросы:
1) Если синхронизация контактов iCloud включена на всех устройствах, имеют ли они одинаковый Id для данной записи?
2) Если iCloud не включен на устройстве и контакты синхронизируются через iTunes, имеют ли они тот же Id, что и на других устройствах, синхронизируемых через iTunes?
3) Если я добавляю контакт на устройство 1, добавляю другой контакт на устройстве 2, а затем синхронизирую iCloud, перезаписать ли Id для вновь созданного контакта на одном устройстве или удаляю и воссоздаю оба контакта на обоих устройствах или что-то типа того?
4) Если кто-то не включил iCloud ни на одном из устройств и не создал несколько контактов на каждом, как iCloud будет обрабатывать идентификаторы при включении? Все контакты удалены, объединены и воссозданы? Нет слияния?
Если идентификаторы одинаковы для всех устройств, за исключением iCloud, меняющего его, то это заставляет меня поверить, что я могу полагаться на идентификатор независимо от того, женился ли кто-то, менял свое имя, менял телефон и т. Д., Пока я могу заблаговременно определить, был ли масштаб, сделал сброс iCloud.
Я предполагаю, что сброс iCloud также "синхронизирует" с другими устройствами, оставляя их с теми же новыми идентификаторами. Если это не так, то мой план поддержки нескольких устройств не работает, и мне нужно будет сделать гораздо более сложные проверки для изменения идентификатора, имени, фамилии, телефонных номеров, электронных писем и т. Д.
Последнее предположение, на которое опирается этот план, заключается в том, что можно обнаружить сброс iCloud, например, большой процент контактов с тем же именем, что и раньше, но с новыми идентификаторами.