Как сделать сортировку нечувствительной к регистру

Мое приложение читает базу данных Firebase с несколькими компаниями и загружает их в TableView. Мой код

class TableViewController: UITableViewController {

    var clinics: [Clinic] = []

    override func viewDidLoad() {
        super.viewDidLoad()

        ProgressHUD.show("Loading...")

        let database = Database.database().reference()
        let clinics = database.child("clinics")

        // Clinics listeners
        clinics.observe(DataEventType.childAdded) { (snapshot) in
            let dados = snapshot.value as? NSDictionary
            let clinic = Clinic()
            clinic.id = snapshot.key
            clinica.name = dados?["name"] as! String

            self.clinics.append(clinic)

            // Sorting
            self.clinicas.sort(by: { $0.nome < $1.nome })

            self.tableView.reloadData()
            ProgressHUD.dismiss()
        }

        clinics.observe(DataEventType.childRemoved) { (snapshot) in
            var index = 0
            for clinic in self.clinics {
                if clinic.id == snapshot.key {
                    self.clinics.remove(at: index)
                }
                index = index + 1
            }
            self.tableView.reloadData()
            ProgressHUD.dismiss()
        }
    }
 }

Структура клиник

class Clinica {
    var id = ""
    var name = ""
}

Этот код отлично работает, и все клиники добавляются в мой TableView.

То, что не работает, как я ожидал, - это сортировка... Строка ниже выполняет сортировку, но зависит от регистра. Я пытаюсь отсортировать по имени и без учета регистра. Я провел много исследований здесь, но я не мог найти ничего, что могло бы это сделать.

Есть ли способ сортировать по имени и не учитывать регистр?

Спасибо


person André Fernandes    schedule 10.11.2019    source источник


Ответы (1)


Предполагая, что свойство nome является String, вы можете использовать compare(:options:):

self.clinicas.sort {
    $0.nome.compare($1.nome, options: .caseInsensitive) == .orderedAscending
}
person Charles Srstka    schedule 10.11.2019
comment
Много дубликатов для этого вопроса. - person rmaddy; 10.11.2019