一尘不染

二进制运算符'> ='不能应用于类型为'String.IndexDistance?'的操作数 (又名“可选”')和'Int'

swift

在Swift 4中,我试图将UITextField的文本长度与最小长度进行比较:

if textFieldPassword.text?.count >= 8 {        
}

但是我得到了错误

Binary operator '>=' cannot be applied to operands of type 'String.IndexDistance?' (aka 'Optional<Int>') and 'Int'

具有讽刺意味的是它与

textFieldPassword.text?.count == 8

有人可以帮我吗?


阅读 385

收藏
2020-07-07

共1个答案

一尘不染

原因是Equatable可以使用可选选项,而Comparable不能使用。您必须打开可选的包装。

合适且安全的解决方案是可选地绑定text属性:

if let password = textFieldPassword.text, password.count >= 8 { ... }
2020-07-07