Определить порядок сортировки iOS для ABContactsHelper

Для проекта iPhone я использую ABContactsHelper от Эрики Садун. Чтобы показать контакты, я не хочу использовать тот же порядок сортировки, который использует iOS, например, в AdressBook.app. Есть ли возможность получить эту информацию?

Я старался:

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

от класса ABContactsHelper, но они всегда дают мне сортировку по имени. Даже если я установлю фамилию, имя в настройке контакта. Заранее спасибо.

Крис

1 ответ

Решение

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 не так сложна для понимания.

Другие вопросы по тегам