public func ==(lhs: Date, rhs: Date) -> Bool {
return lhs === rhs || lhs.compare(rhs) == .orderedSame
}
在升级到Swift 3之后,我现在得到这个错误...“不能对两个Date
操作数应用二元运算符===
”
对如何纠正这个问题有什么建议吗?
发布于 2016-12-01 16:46:05
在Swift 3中,Date
是一个结构(值类型),没有标识,因此不能被===
'ed。
实际上,Date
类型已经提供了a built-in ,所以您不需要自己实现它。
发布于 2016-12-01 17:26:20
Leo Dabus指出了一篇文章SOLUTION POST
我使用>=解决了这个问题。
发布于 2019-02-20 10:08:33
用于将来参考的虚拟代码片段。主要是使用timeIntervalSinceNow
将其转换为Double
,然后进行比较
let inputFormatter = DateFormatter()
inputFormatter.timeZone = TimeZone(abbreviation: "GMT+0:00")
inputFormatter.dateFormat = "MMM dd, yyyy hh:mm:ss a"
dataArray = dataArray.sorted(by: { (crm1 : CRM, crm2 : CRM) -> Bool in
inputFormatter.date(from: crm1.date1!)!.timeIntervalSinceNow <= inputFormatter.date(from: crm2.date1!)!.timeIntervalSinceNow
})
https://stackoverflow.com/questions/40915980
复制