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

最后发布: 2012-03-30 14:14:35


问题

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

xcode uitableview addressbook
回答

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

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