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 中的可比协议。