在没有ABPeoplePickerNavigationController的情况下获取联系人

时间:2012-01-24 08:51:18

标签: iphone objective-c

我想在不使用ABPeoplePickerNavigationController的情况下获取设备上的联系人,有可能在objective-c?

2 个答案:

答案 0 :(得分:4)

是的,这是可能的。下面是一段简单的代码片段:

ABAddressBookRef addressBook = ABAddressBookCreate();

CFArrayRef allPeopleRef = ABAddressBookCopyArrayOfAllPeopleInSourceWithSortOrdering(addressBook, nil, kABPersonSortByFirstName);

CFIndex nPeople = ABAddressBookGetPersonCount(addressBook);


for( int i = 0 ; i < nPeople ; i++ ) {
    ABRecordRef ref = CFArrayGetValueAtIndex(allPeopleRef, i );
    CFStringRef tmpStringRef = ABRecordCopyValue(ref, kABPersonFirstNameProperty); 
    NSLog(@"FirstName: %@", (NSString *)tmpStringRef);
    CFRelease(tmpStringRef);
}

//clean up memory
CFRelease(allPeopleRef);
CFRelease(addressBook);

有关详细信息,请参阅Apple开发人员文档here

答案 1 :(得分:0)

是的。请参阅AddresBook编程指南。 Direct interaction section