如何使排序不区分大小写

How to make a sort case insensitive

我的应用程序读取包含多家公司的 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: { [=10=].nome < .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 中。

没有像我预期的那样工作的是排序...下面的行有点排序但是是大小写相关的。我正在尝试按名称和不区分大小写排序。我在这里做了很多研究,但我真的找不到任何可以做到这一点的东西。

有没有办法按名称排序并且不区分大小写?

谢谢

假设 nome 属性 是 String,你可以使用 compare(:options:):

self.clinicas.sort {
    [=10=].nome.compare(.nome, options: .caseInsensitive) == .orderedAscending
}