由于网上资料少,在此献出一点心得;
以下是按照字母排序取得的联系人
// ABPersonGetSortOrdering() = kABPersonSortByFirstName / kABPersonSortByLastName // ABPersonGetSortOrdering() 表示 姓 和 名 排序状态,共有两种 :
kABPersonSortByFirstName 以第一名称排序
kABPersonSortByLastName 以第二名称排序 + (NSMutableArray*)SortAllContacts:(ABAddressBookRef)addressBook { CFArrayRef people = ABAddressBookCopyArrayOfAllPeople(addressBook); CFMutableArrayRef peopleMutable = CFArrayCreateMutableCopy(kCFAllocatorDefault, CFArrayGetCount(people), people); CFArraySortValues(peopleMutable, CFRangeMake(0, CFArrayGetCount(peopleMutable)), (CFComparatorFunction) ABPersonComparePeopleByName, (void*) ABPersonGetSortOrdering()); NSMutableArray *array = [NSMutableArray arrayWithCapacity:((NSMutableArray *)peopleMutable).count]; for (id person in ((NSMutableArray *)peopleMutable)) { [array addObject:person]; } CFRelease(people); CFRelease(peopleMutable); return array; }
