gpt4 book ai didi

ios - 如何从 Swift 中的数组中获取最新日期

转载 作者:搜寻专家 更新时间:2023-10-31 21:50:31 26 4
gpt4 key购买 nike

我有一组日期。我需要找到最新的。有人可以给我举个例子吗?

最佳答案

可以让NSDate符合Comparable,如图here

鉴于此,您可以使用 maxElement 找到最大值(即最新的)。

import Foundation

extension NSDate: Comparable { }

public func ==(lhs: NSDate, rhs: NSDate) -> Bool {
return lhs.isEqualToDate(rhs)
}

public func <(lhs: NSDate, rhs: NSDate) -> Bool {
return lhs.compare(rhs) == .OrderedAscending
}

let dates = [NSDate(), NSDate()]

let maxDate = maxElement(dates)

请注意,maxElements 会在空数组时爆炸,因此您可能需要使用 isEmpty 来保护它:

let maxDate = dates.isEmpty ? nil : Optional(maxElement(dates))

或者,如果您不想走扩展路线:

if let fst = dates.first {
let maxDate = dropFirst(dates).reduce(fst) {
$0.laterDate($1)
}
}

或者,返回一个可选的:

let maxDate = dates.reduce(nil) {
(lhs: NSDate?, rhs: NSDate?)->NSDate? in
lhs.flatMap({rhs?.laterDate($0)}) ?? rhs
}

关于ios - 如何从 Swift 中的数组中获取最新日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30547612/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com