Почему ABRecordCopyCompositeName NULL и что является альтернативой? - PullRequest
0 голосов
/ 09 августа 2011

Я обнаружил, что в процессе разработки в моих контактах ABRecordCopyCompositeName возвращает NULL для нескольких записей, но при обычном просмотре списка контактов я не вижу пропущенных имен.

Что такое стандартная альтернативная меткаиспользовать, если ABRecordCopyCompositeName возвращает NULL?Кроме того, что заставляет значения NULL существовать в первую очередь?

(РЕДАКТИРОВАТЬ: заголовок исправлен)

Странно:

  • Количество внизуПриложение «Контакты» iPhone содержит 119 контактов.
  • Я насчитал все записи - все 119 там и имеют имена.
  • [ABAddressBookCopyDefaultSource (addressBook) count] возвращает 116, а не 119.
  • Считая каждую запись из ABAddressBook, я получаю 116, , включая 3 пустых записи.

Итак, в дополнение к трем пустым записям я пропускаю еще 3.

Ответы [ 2 ]

2 голосов
/ 15 августа 2011

Я все еще ищу лучший ответ, но до тех пор вот что я нашел:

  • Записи NULL связаны с записями, импортированными из Exchange.Они отображаются как имеющие имя, и если вы отредактируете их и сохраните их (через пользовательский интерфейс), имя будет отображаться правильно, но до тех пор я не могу вывести имя из записи.

Три «отсутствующие» записи все еще сбивают меня с толку.Я считаю, что они также импортируются из Exchange, но просто не включены в запрос ABAddressBookCopyDefaultSource.

Мой обходной путь - не заполнять ячейки таблицы напрямую из ABAddressBook, а сначала скопировать записи в массив, поэтомучто счет правильный.По мере продвижения к выпуску я могу вернуться к этой процедуре и изменить ее так, чтобы очень большие адресные книги не вызывали проблем с памятью.

1 голос
/ 07 декабря 2011

Не все контакты сохранили имя и фамилию, просто электронная почта или какое-то другое поле ... По какой-то причине apple сортирует на основе этого .. Пустое имя композиции с адресом электронной почты "example@example.com" появится под контактом с именем "Эдвард" ... Так что имеет смысл создать запасной вариант: если compositename пусто, ищите адрес электронной почты

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...