Извиняюсь за предыдущий ответ - я неправильно прочитал вопрос ...!Я думал, что контакт вообще не сохранялся в адресной книге.
Кажется, что единственная потерянная информация - это другие номера телефона контакта, верно?Это означает, что другие детали ABRecordRef, такие как адрес, заметки, даты рождения и т. Д., Остаются неизменными.
Если это правильно, я предполагаю, что единственный реальный способ противодействовать этому удалению других телефонных номеров - просто добавитьPhoneLabel для существующего контакта kABPersonPhoneProperty.Вместо создания нового ABMutableMultiValueRef для телефонных номеров скопируйте его из записи следующим образом:
ABMutableMultiValueRef phoneNumberMultiValue = ABMultiValueCreateMutableCopy((ABMultiValueRef)ABRecordCopyValue(contact, kABPersonPhoneProperty));
Теперь вы можете добавить новый телефонный номер с тем же кодом:
ABMultiValueAddValueAndLabel(phoneNumberMultiValue, phoneNum, kABPersonPhoneMobileLabel, NULL);
Что в этом хорошего, так это то, что не происходит никакой замены или удаления - приложение просто добавляет другой номер телефона к свойству телефонных номеров контакта.: D
Надеюсь, это поможет.