如何在 Swift 中对对象数组进行排序?

Posted

技术标签:

【中文标题】如何在 Swift 中对对象数组进行排序?【英文标题】:How to sort an array of object in Swift? 【发布时间】:2015-06-23 04:55:20 【问题描述】:

我现在是这样写的

static func fromIntervals(intervals: [Interval]) -> ChartData 
    let sortedIntervals = intervals.sorted  (a, b) in return a.startTime < b.startTime

但它显示错误

Cannot invoke 'sorted' with an argument list of type '((_, _) -> _)'

我搜索了很多其他代码示例,但它们都不起作用,我不知道为什么。有什么建议吗?

【问题讨论】:

startTimeNSDate 吗?那么这是***.com/questions/26577496/…的重复:NSDates不能直接和&lt;比较。 【参考方案1】:

sort不是sorted

let sortedIntervals = intervals.sort  (a, b) in return a.startTime < b.startTime

【讨论】:

【参考方案2】:

你做错了。使用sort 而不是sorted

static func fromIntervals(intervals: [Interval]) -> ChartData 
    let sortedIntervals = intervals.sort  (a, b) in return a.startTime < b.startTime

编辑

let sortedIntervals = sorted(intervals,  (a: Object, b: Object) -> Bool in return a.startTime < b.startTime  )

更多信息请参见Apple's doc。

【讨论】:

sort 正在改变间隔本身 - 但这是不可变的,因为它是函数的参数。我想要另一个排序的副本。

以上是关于如何在 Swift 中对对象数组进行排序?的主要内容,如果未能解决你的问题,请参考以下文章