gpt4 book ai didi

ios - 使用空白字符串在 Swift 中对 dateStrings 进行排序

转载 作者:行者123 更新时间:2023-11-28 12:05:59 24 4
gpt4 key购买 nike

我正在尝试按日期对一组自定义对象进行排序,但日期作为字符串存储在 .medium dateStyle 中。但是,某些对象的日期也为空字符串。

如何仍然对空日期的数组进行排序?

这是我的代码:

let objA = testObj(dateProp: "Mar 13, 2018")
let objB = testObj(dateProp: "Apr 13, 2018")
let objC = testObj(dateProp: "Apr 12, 2018")
let objD = testObj(dateProp: "")

let arr: [testObj] = [objA, objB, objC]

let sortedArr = arr.sorted(by: { DateHandler.shared.convertStringToDate(string: $0.dateProp)?.compare(DateHandler.shared.convertStringToDate(string: $1.dateProp)!) == .orderedDescending })

print(sortedArr)

DateHandler.shared.convertStringtoDate 只是将字符串转换为日期,但是强制解包一个可选的会导致代码在出现空字符串而不是日期时中断。

最佳答案

只是扩展排序闭包

let sortedArr = arr.sorted { (first, second) -> Bool in
let dateFormatter = DateFormatter()

guard let firstDate = dateFormatter.date(from: first.dateProp) else {
return false
}
guard let secondDate = dateFormatter.date(from: second.dateProp) else {
return true
}
return firstDate < secondDate
}

关于ios - 使用空白字符串在 Swift 中对 dateStrings 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49377140/

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