二元运算符'> ='不能应用于类型'String.IndexDistance?'的操作数(又名“可选”)和‘廉政’

二元运算符'> ='不能应用于类型'String.IndexDistance?'的操作数(又名“可选<Int>”)和‘廉政’

问题描述:

斯威夫特4我想的也是UITextField的文本的长度具有最小长度比较:二元运算符'> ='不能应用于类型'String.IndexDistance?'的操作数(又名“可选<Int>”)和‘廉政’

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 { ... } 
+0

感谢vadian,我会接受你的答案 –