ios - Swift 2.0 按属性对对象数组进行排序

标签 ios swift sorting swift2

在 Swift 2.0 中,您将如何根据属性对自定义对象数组进行排序?我知道在 Swift 1.2 中,这是使用 sorted() 和 sort() 完成的。但是,这些方法在 Xcode 7 beta 4 中不再有效。谢谢!

例如:

class MyObject: NSObject {
    var myDate : NSDate
}

...

let myObject1 : MyObject = MyObject() //same thing for myObject2, myObject3

var myArray : [MyObject] = [myObject1, myObject2, myObject3] 

//now, I want to sort myArray by the myDate property of MyObject.

最佳答案

在 Swift 2 中:

  • 您可以使用 sort方法,使用 compare比较两个日期:

    let sortedArray = myArray.sort { $0.myDate.compare($1.myDate) == .OrderedAscending }  // use `sorted` in Swift 1.2
    
  • 或者,如果你想对原数组进行排序,你可以sortInPlace :

    myArray.sortInPlace { $0.myDate.compare($1.myDate) == .OrderedAscending }  // use `sort` in Swift 1.2
    

在 Swift 3 中:

  • 要返回数组的排序格式,请使用 sorted , 不是 sort

    let sortedArray = myArray.sorted { $0.myDate < $1.myDate }
    
  • 为了原地排序,现在只是 sort :

    myArray.sort { $0.myDate < $1.myDate }
    

还有 Swift 3 的 Date类型,您可以使用 <运营商。

关于ios - Swift 2.0 按属性对对象数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31729337/

相关文章:

ios - PHImageManager 是否为 2x 和 3x 屏幕返回像素或点大小的图像?

swift - 在 RealityKit 中更改对象的枢轴点

javascript - 在 Javascript 中排序列表

ios - 如何在我的 iOS/Swift 项目中调用我的 AWS API Gateway REST API

ios - 禁用 MPMoviePlayerController 中的控件

ios - 如何在表格 View 下方添加一个 View ,但它会随单元格一起滚动?

algorithm - 八皇后回溯解决方案是否需要任何排序?

ios - MPNowPlayingInfoCenter 播放暂停图像不变

xcode - 使用swift在NSUserDefaults ios8中设置默认值

c - Qsort 对指向另一个结构的结构数组进行排序