2

对于一个 iPhone 项目,我正在使用 Erica Sadun 的 ABContactsHelper。为了显示联系人,我不想使用与 iOS 在例如 AdressBook.app 中使用的相同排序顺序。有没有可能获得这些信息?

我试过:

+ (BOOL) firstNameSorting;
+ (BOOL) lastNameSorting;

来自 ABContactsHelper 类,但这些总是给我名字排序。即使我在联系人设置中设置姓氏,名字。提前致谢。

克里斯

4

1 回答 1

5

ABPersonGetSortOrdering()应该管用。

ABPersonSortOrdering sortOrder = ABPersonGetSortOrdering();
if (sortOrder == kABPersonSortByFirstName) {
    // sort by firstName
}
else {
    // sort by lastName
}

如果您查看 Ericas 代码,您会发现它没有返回排序顺序。它实际上返回显示格式。

来自 ABContactsHelper.m:

// Sorting
+ (BOOL) firstNameSorting
{
    return (ABPersonGetCompositeNameFormat() == kABPersonCompositeNameFormatFirstNameFirst);
}

这是完全错误的。

也许你想跳过那个 4 岁的、无人维护的代码,自己写点东西。AddressBook 框架并不难理解。

于 2013-07-10T23:39:39.563 回答