如何检索用户联系人并将其显示在UITableView中?

时间:2012-03-30 14:14:36

标签: xcode uitableview addressbook

原谅我的无知,但我主要完成了游戏编程,并没有像应用程序那么多Utiliy。我要做的是检索用户联系人并在应用程序启动的表格视图中显示它们。我不是一个完整的菜鸟我知道我的方式围绕地址簿API。我只是不确定如何完成将用户联系人放入我自己的自定义UITableView的任务。任何帮助是极大的赞赏!

1 个答案:

答案 0 :(得分:0)

我不确定我的回复会有多好,因为我没有使用地址簿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)
}

我不知道我的回答有多大帮助,但如果你想让我澄清一些事情(或者告诉我,如果你的问题很简单,我很傻),请随时告诉我。