我有一个类型的对象数组Thing:
class Thing: NSObject {
var data: String
var type: String
var created: NSDate
}
Run Code Online (Sandbox Code Playgroud)
这些东西都有一个名为的NSDate属性created.我的目标是编写一个函数来读取created数组中每个东西的属性并返回具有最新日期的东西.该函数如下所示:
public func getLastSwipe(list: Array<Thing>) -> Thing {
return someThing
}
Run Code Online (Sandbox Code Playgroud)
Osc*_*and 14
另一种方法是使用 Swift 的.max,就像这样
let mostRecentDate = dates.max(by: {
$0.timeIntervalSinceReferenceDate < $1.timeIntervalSinceReferenceDate
})
Run Code Online (Sandbox Code Playgroud)
这是我找到的最高效的解决方案。
如果序列不为空,则返回序列的最近日期;否则,无。
reduce如果你愿意,你可以使用.这将找到具有最高时间戳的对象.
var mostRecent = list.reduce(list[0], { $0.created.timeIntervalSince1970 > $1.created.timeIntervalSince1970 ? $0 : $1 } )
Run Code Online (Sandbox Code Playgroud)
如果您的日期不是过去的日期,您还必须与当前日期进行比较以确定截止日期.如果您的日期都在将来,您将需要切换>到<以查找下一个未来日期(最低时间戳).
| 归档时间: |
|
| 查看次数: |
3285 次 |
| 最近记录: |