How to check for nil in while loop in Swift? I\'m getting error on this:
var count: UInt = 0
var view: UIView = self
while view.superview != nil { /
The syntax of while allows for optional binding. Use:
var view: UIView = self
while let sv = view.superview {
count += 1
view = sv
}
[Thanks to @ben-leggiero for noting that view need not be Optional (as in the question itself) and for noting Swift 3 incompatibilities]
Your code cannot compile. nil can only appear in optionals.
You need to declare view with optional, var view: UIView? = self.superview.
Then compare it with nil in the while-loop.
var count: UInt = 0
var view: UIView? = self.superview
while view != nil { // Cannot invoke '!=' with an argument list of type '(@lvalue UIView, NilLiteralConvertible)'
count++
view = view!.superview
}
Or do a let binding, But it seems not necessary here, I think.