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
Post a Comment