Swift3 Swift 3为什么可以';t二进制运算符'===';适用于两个';日期';操作数?
升级到Swift 3后,我现在收到此错误。。。“二进制运算符Swift3 Swift 3为什么可以';t二进制运算符'===';适用于两个';日期';操作数?,swift3,Swift3,升级到Swift 3后,我现在收到此错误。。。“二进制运算符==不能应用于两个日期操作数” 关于如何更正此问题的任何建议?在Swift 3中是一种结构(值类型),没有标识,因此无法=' 事实上,Date类型已经提供了,所以您不需要自己实现它。在Swift 3中是一个结构(值类型),没有标识,因此不能='ed 事实上,Date类型已经提供了,所以您不需要自己实现它 我用>=来纠正这个问题。利奥·达布斯指出了一篇文章 我用>=来纠正这个问题。虚拟代码片段供将来参考。主要部分是使用timeInterv
==
不能应用于两个日期
操作数”
关于如何更正此问题的任何建议?在Swift 3中是一种结构(值类型),没有标识,因此无法=
'
事实上,Date
类型已经提供了,所以您不需要自己实现它。在Swift 3中是一个结构(值类型),没有标识,因此不能=
'ed
事实上,
Date
类型已经提供了,所以您不需要自己实现它
我用>=来纠正这个问题。利奥·达布斯指出了一篇文章
我用>=来纠正这个问题。虚拟代码片段供将来参考。主要部分是使用
timeIntervalSinceNow
,它将转换为Double
,然后进行比较
public func ==(lhs: Date, rhs: Date) -> Bool {
return lhs === rhs || lhs.compare(rhs) == .orderedSame
}
let inputFormatter=DateFormatter()
inputFormatter.timeZone=时区(缩写:“GMT+0:00”)
inputFormatter.dateFormat=“mm dd,yyyy hh:mm:ss a”
dataArray=dataArray.sorted(按:{(crm1:CRM,crm2:CRM)->Bool-in
inputFormatter.date(from:crm1.date1!)!.timeIntervalSinceNow虚拟代码段供将来参考。主要部分是使用timeIntervalSinceNow
,它将转换为Double
,然后进行比较
public func ==(lhs: Date, rhs: Date) -> Bool {
return lhs === rhs || lhs.compare(rhs) == .orderedSame
}
let inputFormatter=DateFormatter()
inputFormatter.timeZone=时区(缩写:“GMT+0:00”)
inputFormatter.dateFormat=“mm dd,yyyy hh:mm:ss a”
dataArray=dataArray.sorted(按:{(crm1:CRM,crm2:CRM)->Bool-in
inputFormatter.date(from:crm1.date1!)!.timeIntervalSinceNow我已经通过强制取消包装日期对象解决了它
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
})
我通过强制打开日期对象解决了这个问题
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
})
Swift 3 Date是一个已经符合可比协议的结构。Swift 3 Date是一个已经符合可比协议的结构。没有标识这意味着什么?@Honey Identity=Reference=Pointer value。具有相同值的结构彼此无法区分,即您不能为每个结构分配标识ct值。请参阅。没有标识这意味着什么?@Honey Identity=Reference=指针值。具有相同值的结构彼此无法区分,即不能为每个结构值分配标识。请参阅。您可以使用任何比较运算符。只需删除以前为NSC定义的所有自定义运算符可以使用任何比较运算符。只需删除以前为NSDate定义的所有自定义运算符