AddressBook 联系人字母排序法

    技术2026-01-02  0

    由于网上资料少,在此献出一点心得;

    以下是按照字母排序取得的联系人

    // 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; }

    最新回复(0)