我有一个Thing
类型的对象数组:
class Thing: NSObject {
var data: String
var type: String
var created: NSDate
}
这些东西都有一个名为created
的NSDate属性,我的目标是编写一个函数,读取数组中每个东西的created
属性,并返回日期最近的东西,该函数如下所示:
public func getLastSwipe(list: Array<Thing>) -> Thing {
return someThing
}
3条答案
按热度按时间bz4sfanl1#
另一种方法是使用Swift的
.max
,如下所示:dates.max(by: <)
以下是我以前的回答,更新于2023年2月。
这是我找到的性能最好的解决方案。
如果序列不为空,则返回序列的最近日期;否则为零。
w1jd8yoj2#
如果你愿意的话,你可以使用
reduce
,它会找到时间戳最大的对象。如果你的日期不全是过去的,你还需要与当前日期进行比较,以确定截止日期;如果你的日期全是未来的,你需要将
>
切换到<
,以找到下一个未来日期(最小时间戳)。4sup72z83#
您可以对数组进行排序,然后查找第一个/最后一个元素。例如...
这将返回最近的Thing作为可选值(因为不能保证数组不为空。如果您知道数组不为空,则可以以
.first!
结束该行