swift - Why does the compiler tell me I need to unwrap a Bool (non-optional?) -


according the swift header string

the property isempty bool (not optional right?)

public var isempty: bool { } 

but in code, when try write:

!sender.titleofselecteditem?.isempty 

value of optional type bool? not unwrapped, did mean use "?" or "!"

why compiler think isempty optional?

is because object contains property optional?

titleofselecteditem string?

or missing entirely, here?

sender.titleofselecteditem?.isempty optional chain , has type bool? because can return nil if titleofselecteditem nil.

you should decide how want handle nil case. can combine optional chain nil coalescing operator ?? safely unwrap result:

// treat nil empty let empty = sender.titleofselecteditem?.isempty ?? true 

or can compare value false:

if sender.titleofselecteditem?.isempty == false {     // value isn't nil , isn't empty } 

or can compare value true:

if sender.titleofselecteditem?.isempty == true {     // value isn't nil , empty string } 

Comments

Popular posts from this blog

node.js - Node js - Trying to send POST request, but it is not loading javascript content -

javascript - Replicate keyboard event with html button -

javascript - Web audio api 5.1 surround example not working in firefox -