public func ==(lhs: Date, rhs: Date) -> Bool {
return lhs === rhs || lhs.compare(rhs) == .orderedSame
}
升级到Swift 3后,我现在收到此错误..."二进制运算符===
无法应用于两个Date
个操作数"
有关如何纠正此问题的任何建议吗?
答案 0 :(得分:5)
在Swift 3中Date
是一个结构(值类型),没有身份,因此不能===
'。
事实上,Date
类型已提供a built-in ==
,因此您无需自行实施。
答案 1 :(得分:0)
虚拟代码段,以供将来参考。主要部分是使用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
})
答案 2 :(得分:0)
我已经通过强制打开日期对象来解决了
minLength="1"