¿ABRecordID es una forma confiable de identificar contactos únicos?

Mi aplicación carga contactos y, en el futuro, tendrá que actualizarlos. ¿Está utilizando el ABRecordID una forma confiable de identificar personas, o es posible que un nuevo logging obtenga la ID de un logging eliminado?

Para optimizar las subidas, me gustaría upload solo los loggings que se han modificado o creado desde la última subida. Actualmente estoy almacenando una copy de los contactos de la persona usando datos básicos. Me gustaría adelgazar la huella de mi aplicación y acelerar el time de ejecución de escanear a través de la libreta de direcciones de la persona en busca de contactos nuevos / modificados y limitar la cantidad que debe cargarse. Después de analizar las libretas de direcciones de algunas personas, la cantidad de contactos puede variar entre 30 y alnetworkingedor de 30,000. Hacer frente a 30,000 contactos es una pesadilla.

Un nuevo logging no obtendrá un id previamente asociado con un logging eliminado. ABRecordID s son únicos en ese sentido. Pero no son necesariamente consistentes a lo largo del time, un par de cosas pueden hacer que la ID cambie. El usuario que enciende o apaga iCloud puede hacer que la ID cambie, ya que puede restaurar el dispositivo de iTunes. Dicho esto, ABRecordID sigue siendo su mejor apuesta para get un identificador único para un contacto. Solo necesitas verificar que las cosas se alineen cuando lo utilices. Apple sugiere lo siguiente en la guía de progtwigción de la libreta de direcciones:

La forma recomendada de mantener una reference a largo ploop para un logging en particular es almacenar el nombre y apellido, o un hash del nombre y apellido, además del identificador. Cuando busca un logging por ID, compare el nombre del logging con el nombre almacenado. Si no coinciden, use el nombre almacenado para search el logging y almacene la nueva ID para el logging.