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