That is interesting. Before the latest Swift 3, you could
compare optional values, for example
let a: Int? = nil
let b: Int? = 4
print(a < b) // true
and nil
was considered less than all non-optional values.
This feature has been removed (SE-0121 – Remove Optional Comparison Operators) and the above code would fail to compile
in Xcode 8 beta 6 with
error: value of optional type 'Int?' not unwrapped; did you mean to use '!' or '?'?
Apparently, the Swift migrator solves that problem for you by
providing a custom <
operator which takes two optional operands
and therefore "restores" the old behavior.
If you remove that definition then you should see where the
comparison is done in your code. Then try to update your code
and remove the optional comparisons.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…