ABRecordGetRecordID возвращает -1

#ios #objective-c #abaddressbook

#iOS #objective-c #abaddressbook

Вопрос:

Я пытаюсь получить ABRecordID записи, но он всегда возвращает -1. Вот мой код:

  NSNumber *recordId = [NSNumber numberWithInteger:ABRecordGetRecordID(person)];
  

Я могу получить другую информацию без каких-либо проблем:/ Какие-либо решения?

Комментарии:

1. -1 возвращается, когда запись не была сохранена в базе данных. Смотрите Документы для ABRecordGetRecordID .

2. Хорошо, я вижу, но я извлекаю запись из симулятора iPhone, тогда это ошибка? Или я должен использовать другое свойство для идентификации ABRecordRef ?

3. У меня такая же проблема в iOS 8 на симуляторе и на устройстве.

4. Было ли найдено решение этой проблемы?

Ответ №1:

Вам необходимо запросить авторизацию ( ABAddressBookRequestAccessWithCompletion ), чтобы иметь возможность получить идентификатор записи. В противном случае вы просто получите ABPersonRef с копией данных.