Swift 3 - 比较两个日期时 < 运算符的使用不明确
Swift 3 - Ambiguous use of < operator when comparing two dates
比较 swift 中的两个日期时,我可以使用 > 进行比较,但不能使用 <。
startTime、endTime 和 Date() 都是日期类型(以前是 NSDate)
//Broken Code
if Date() >= startTime && Date() < endTime
{
...
}
Gives ambiguous use of < operator error
//Working Code
if Date() >= startTime && endTime > Date()
{
...
}
这不起作用是否有特定原因?
我在找苹果文档的时候居然找到了这个例子,他们居然用的是这段代码
http://www.globalnerdy.com/2016/08/29/how-to-work-with-dates-and-times-in-swift-3-part-3-date-arithmetic/
我开始怀疑是不是使用了 && 运算符,或者可能只是顺序问题,但即使是自己编写代码
if startTime < endTime {...}
但它returns相同的命令。
显然我已经找到了解决方法,但我很好奇为什么会这样。
您可能已扩展 NSDate
以符合 Swift 2 中的可比协议。只需删除它,因为 Date
现在符合 Swift3 中的可比协议。
比较 swift 中的两个日期时,我可以使用 > 进行比较,但不能使用 <。 startTime、endTime 和 Date() 都是日期类型(以前是 NSDate)
//Broken Code
if Date() >= startTime && Date() < endTime
{
...
}
Gives ambiguous use of < operator error
//Working Code
if Date() >= startTime && endTime > Date()
{
...
}
这不起作用是否有特定原因?
我在找苹果文档的时候居然找到了这个例子,他们居然用的是这段代码 http://www.globalnerdy.com/2016/08/29/how-to-work-with-dates-and-times-in-swift-3-part-3-date-arithmetic/
我开始怀疑是不是使用了 && 运算符,或者可能只是顺序问题,但即使是自己编写代码
if startTime < endTime {...}
但它returns相同的命令。
显然我已经找到了解决方法,但我很好奇为什么会这样。
您可能已扩展 NSDate
以符合 Swift 2 中的可比协议。只需删除它,因为 Date
现在符合 Swift3 中的可比协议。