Большой набор данных и адресная книга ABAddressBookCopyArrayOfAllPeople - PullRequest
0 голосов
/ 19 июня 2009

При использовании AddressBook API единственным способом получить список всех людей является использование ABAddressBookCopyArrayOfAllPeople, если вы не используете ABPeoplePickerNavigationController.

ABPeoplePickerNavigationController выбирает человека и отклоняет поведение представления не то, что мне нужно. Вместо этого я хотел бы загрузить содержимое адресной книги в свое собственное табличное представление, а затем выполнить некоторое произвольное поведение выбора.

Но есть ли способ справиться с частичной загрузкой данных адресной книги вместо всего списка, чтобы предоставить данные в качестве источника данных таблицы? Если, скажем, адресная книга содержала 3000 записей, то я копирую все эти данные в локальный массив - есть ли более оптимальный способ обойти это для достижения лучшей производительности?

1 Ответ

0 голосов
/ 19 июня 2009

Не уверен, что это оптимально, но если вы хотите показать весь контент в вашей таблице, он должен быть как-то "отсортирован", предположим, что вы просто сортируете их по алфавиту, тогда вы можете вместо копирования всей адресной книги просто попросить ее вернуть список записей, начинающихся с «а» метод для этого, я думаю: CFArrayRef ABAddressBookCopyPeopleWithName ( ABAddressBookRef addressBook, Имя CFStringRef ); name может быть "a *", который вернул бы всех людей, начинающихся с a. можно использовать несколько вызовов этого метода из вашей таблицы, чтобы избежать копирования всех людей, которых я считаю.

надеюсь, это поможет, -t

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