【问题标题】:How do sort custom object in an array in swift? [duplicate]如何快速对数组中的自定义对象进行排序? [复制]
【发布时间】:2016-06-20 17:49:15
【问题描述】:
class MyClass {
    var name: String?
    var address: String?

    init(name: String, address: String){
        self.name = name
        self.address = address
    }
}

let array = [MyClass(name: "John", address: "USA"), MyClass(name: "Smith", address: "UK"),MyClass(name: "Paul", address: "AUS"), MyClass(name: "Peter", address: "RSA")]

现在如何按 MyClass 对象的名称对数组进行排序。

【问题讨论】:

    标签: ios arrays swift


    【解决方案1】:
    let sortedArray = array.sort { $0.name < $1.name }
    

    这应该可以解决问题。

    【讨论】:

      【解决方案2】:
      array.sortInPlace { $0.name < $1.name }
      

      【讨论】:

        【解决方案3】:

        实现这一点的正确方法是确保您的自定义类符合 Comparable 协议并提供实现

        想出一个扩展-

        extension MyClass:Comparable{};
        
        
        func ==(x: MyClass, y: MyClass) -> Bool {
            return x.name == y.name  //Add any additional conditions if needed
         } 
        
        func <(x: MyClass, y: MyClass) -> Bool { 
           return x.name < y.name  //You can add any other conditions as well if applicable.
        }
        

        现在您可以对这个自定义类的对象数组进行排序,例如

        let sorted = array.sort(<)
        

        【讨论】:

          猜你喜欢
          • 2015-11-19
          • 2011-06-02
          • 2017-04-02
          • 1970-01-01
          • 2020-05-18
          • 1970-01-01
          • 1970-01-01
          • 2018-05-12
          相关资源
          最近更新 更多