Подтвердить что ты не робот

IPhone CoreData - Как получать управляемые объекты и сортировать их, игнорируя регистр?

Кто-нибудь знает, как получить некоторые результаты, сортируя их по алфавиту, но игнорируя случай?

4b9b3361

Ответ 1

Спасибо за ваш ответ, но мне нужно отсортировать результат простого "запроса", игнорирующего случай. Ваше предложение применяется для поиска и сравнения.

Говоря SQL, мне нужен ORDER BY firstName ASC, и эта команда должна быть нечувствительна к регистру для моего использования.

Я сделал некоторый Googling, и я закончил читать Ссылка на класс NSSortDescriptor, и я мог найти ответ на мой вопрос. Решение устанавливает селектор дескриптора сортировки следующим образом:

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"firstName" ascending:YES selector:@selector(caseInsensitiveCompare:)];

Я надеюсь, что это будет полезно для большего количества людей.

Ответ 2

Если приложение локализовано на нескольких языках, рассмотрите возможность использования селектора localizedCaseInsensitiveCompare: вместо caseInsensitiveCompare. Это приведет к тому, что буквой "é" станет буква "e".

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"firstName" ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)];

Ответ 4

Быстрая версия:

let sortDescriptor = NSSortDescriptor(key: "firstName", ascending: true, selector: #selector(NSString.localizedCaseInsensitiveCompare))