如何排序iPhone联系人?

Mat*_*rix 14 iphone abaddressbook ios

如何以编程方式按名字和姓氏对iphone联系簿进行排序(或检索已排序的数组)?

任何帮助将不胜感激......!谢谢

Ole*_*ann 26

调用ABAddressBookCopyArrayOfAllPeople()以获取通讯簿中所有人员记录的数组.然后按照文档:

要对一组人进行排序,请使用函数CFArraySortValues和函数ABPersonComparePeopleByName作为比较器以及ABPersonSortOrdering类型的上下文.用户所需的排序顺序(由ABPersonGetSortOrdering返回)通常是首选上下文.

以下代码清单显示了整个通讯簿数据库的排序示例:

ABAddressBookRef addressBook = ABAddressBookCreate();
CFArrayRef people = ABAddressBookCopyArrayOfAllPeople(addressBook);
CFMutableArrayRef peopleMutable = CFArrayCreateMutableCopy(
                                          kCFAllocatorDefault,
                                          CFArrayGetCount(people),
                                          people
                                  );

 CFArraySortValues(
        peopleMutable,
        CFRangeMake(0, CFArrayGetCount(peopleMutable)),
        (CFComparatorFunction) ABPersonComparePeopleByName,
        (void*) ABPersonGetSortOrdering()
); 

CFRelease(addressBook);
CFRelease(people);
CFRelease(peopleMutable);
Run Code Online (Sandbox Code Playgroud)


Mar*_*rco 7

这个怎么样: -

ABAddressBookCopyArrayOfAllPeopleInSourceWithSortOrdering
Run Code Online (Sandbox Code Playgroud)

声明 ABPerson.h