门户网站建设网站seo服务商
由于网上资料少,在此献出一点心得;
以下是按照字母排序取得的联系人
// 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;
}
