根据字符串的
Swift标头
属性isEmpty是Bool(不是可选的权利?)
public var isEmpty: Bool { get }
但在我的代码中,当我尝试写:
!sender.titleOfSelectedItem?.isEmpty
Value of optional type
Bool?
not unwrapped,did you mean to use “?”
or “!”
为什么编译器认为isEmpty是可选的?
是因为包含该属性的对象当前是可选的吗?
titleOfSelectedItem是一个字符串?
或者我完全错过了什么,在这里?
解决方法
sender.titleOfSelectedItem?.isEmpty是一个可选链,其类型为Bool?因为如果titleOfSelectedItem为nil,它可以返回nil.
您应该决定如何处理零案例.您可以将可选链与nil合并运算符组合使用?安全地打开结果:
// treat nil as empty let empty = sender.titleOfSelectedItem?.isEmpty ?? true
或者您可以将值与false进行比较:
if sender.titleOfSelectedItem?.isEmpty == false { // value isn't nil and it isn't empty }
或者您可以将值与true进行比较:
if sender.titleOfSelectedItem?.isEmpty == true { // value isn't nil and it is an empty String }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。