Лучший способ реализовать автозаполнение адресной книги на iPhone? - PullRequest
0 голосов
/ 08 марта 2011

Мне интересно, какой самый лучший (самый быстрый и простой) способ иметь текстовое поле автоматически с контактной информацией в адресной книге iPhone.

Будет ли доступ к адресной книге при каждом быстром нажатии клавиши? Или я должен загрузить все в моей локальной базе данных (как правило, CoreData)? Другим способом было бы загружать все в памяти при каждом запуске приложения. Любой опыт по поводу скорости доступа к адресной книге?

ДОБАВЛЕНО: Я хотел бы избежать необходимости загружать локальную копию содержимого адресной книги, потому что это не только больше кода для записи, но также вам нужно синхронизировать локальную копию при изменении адресной книги.

Ответы [ 2 ]

2 голосов
/ 09 марта 2011

Для сверхбыстрого посимвольного поиска подход, который вам нужен, называется Направленный ациклический граф слов .

1 голос
/ 09 марта 2011

Будет ли доступ к адресной книге каждый раз, когда нажимается достаточно быстро?

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

Однако я не думаю, что есть функции для телефонных номеров и адресов.

Альтернативой может быть создание древовидной структуры данных с буквами и цифрами, которая разветвляется на лист, содержащий ABRecordID определенной записи AddressBook.Использование отношений Core Data - это быстрый и простой способ сделать это.Конечно, вам придется постоянно обновлять свое дерево.

...