Как получить контакты пользователей и представить их в UITableView? - PullRequest
3 голосов
/ 30 марта 2012

Простите мое невежество, но я в основном занимался программированием игр, а не так, как приложения. Я пытаюсь получить контакты пользователей и представить их в виде таблицы при запуске приложения. Я не полный нуб, я знаю, как обходить API адресной книги. Я просто не уверен, как выполнить задачу получения контактов пользователей в моем собственном пользовательском UITableView. Любая помощь с благодарностью!

1 Ответ

0 голосов
/ 22 апреля 2012

Я не уверен, насколько хорошим будет мой ответ, потому что я не использовал API адресной книги, но небольшой поиск + мои собственные знания предлагают следующее:

Создать адресную книгу

Один из способов сделать это (основываясь на моих поисках) выглядит следующим образом:

ABAddressBookRef addressBook = ABAddressBookCreate( );
CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople( addressBook );
CFIndex nPeople = ABAddressBookGetPersonCount( addressBook );

for ( int i = 0; i < nPeople; i++ )
{
    ABRecordRef ref = CFArrayGetValueAtIndex( allPeople, i );
    ...
}

Показать адресную книгу

Используя приведенный выше код, теперь вам нужно отобразить его внутри таблицы. Я не знаю, насколько вы знакомы с использованием UITableView, поэтому я буду более многословен, чем то, что мне, вероятно, нужно. Вам нужно заполнить следующие методы вашего класса tableView:

- (NSInteger)numberOfSections
{
    //You can also return 26 here, but you'll need to split your addressBook array, so each section contains the people starting with a single letter of the alphabet
    return 1;
}

- (NSInteger)numberOfRowsInSection:(NSInteger)section
{
    return [addressBook count];
}

- (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    //do standard cell instantiation
    //get the contact at index indexPath.row
    //set the cell's textLabel.text to that contact's name (or whatever you want)
}

Я не знаю, насколько полезным был мой ответ, но если вы хотите, чтобы я кое-что прояснил (или скажите, что я глупо, если ваша проблема настолько проста), не стесняйтесь, дайте мне знать.

...