当前位置: 首页 > 面试题库 >

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

常英纵
2023-03-14
问题内容

在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

有人可以帮我吗?


问题答案:

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

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

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


 类似资料: