swift – 为什么编译器告诉我需要解包Bool(非可选?)
发布时间:2020-12-14 04:36:10 所属栏目:百科 来源:网络整理
导读:根据字符串的 Swift标头 属性isEmpty是Bool(不是可选的权利?) public var isEmpty: Bool { get } 但在我的代码中,当我尝试写: !sender.titleOfSelectedItem?.isEmpty Value of optional type Bool? not unwrapped,did you mean to use “?” or “!” 为什
根据字符串的
Swift标头
属性isEmpty是Bool(不是可选的权利?) public var isEmpty: Bool { get } 但在我的代码中,当我尝试写: !sender.titleOfSelectedItem?.isEmpty
为什么编译器认为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 } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |