确定ABContactsHelper的iOS排序顺序

确定ABContactsHelper的iOS排序顺序,ios,contacts,abaddressbook,Ios,Contacts,Abaddressbook,对于一个iPhone项目,我使用的是Erica Sadun的ABContactsHelper。 要显示联系人,我不想使用与iOS在addressbook.app中使用的排序顺序相同的排序顺序。 是否有可能获得此信息 我试过: + (BOOL) firstNameSorting; + (BOOL) lastNameSorting; 从ABContactsHelper类,但这些总是给我的名字排序。即使我在联系人设置中设置了lastname和firstname。 提前谢谢 克里斯应该工作 ABPer

对于一个iPhone项目,我使用的是Erica Sadun的ABContactsHelper。 要显示联系人,我不想使用与iOS在addressbook.app中使用的排序顺序相同的排序顺序。 是否有可能获得此信息

我试过:

+ (BOOL) firstNameSorting;
+ (BOOL) lastNameSorting;
从ABContactsHelper类,但这些总是给我的名字排序。即使我在联系人设置中设置了lastname和firstname。 提前谢谢

克里斯应该工作

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

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

从ABContactsHelper.m:

// Sorting
+ (BOOL) firstNameSorting
{
    return (ABPersonGetCompositeNameFormat() == kABPersonCompositeNameFormatFirstNameFirst);
}
这是完全错误的


也许你想跳过那段4年前没有维护的代码,自己写点东西。AddressBook框架并不难理解

就这样。非常感谢。当时我选择它只是为了更快的进步。无论如何,现有的forks github提供iOS 5+支持…如果用户再次更改排序顺序,我如何得到通知?@schystz您不会得到通知。您必须按照Matthias所述检索排序顺序Bauch@Matthias您能在回答中添加iOS 9及更高版本的代码吗?感谢
[[CNContactsSuserDefaults sharedDefaults]排序器]