Usage of where in if let assignment in Swift
IosSwiftWhereOptionalSwift3Ios Problem Overview
The Swift documentation at page 61 of the Swift manual hints to the possibility of using where
to join an optional binding with a regular condition. Yet when I do it I have a warning suggesting me to substitute the where
with a comma like in the following piece of code:
if let geocodingError = error as? NSError where geocodingError.code == 2
Ios Solutions
Solution 1 - Ios
In Swift 3 this syntax has changed.
What was
if let x = y, a = b where a == x {
Is now
if let x = y, let a = b, a == x {
The justification is that each sub-clause of the if ... {
is now an independent boolean test.
See the Xcode Release notes & the Swift Evolution proposal for more info about this change.
Solution 2 - Ios
Example with two conditions
if let x = y, let a = b, a == x && !x.isEmpty {
Solution 3 - Ios
In xcode 9
if let str = textField.text as String!, !str.isEmpty
{
params[key] = str
TextFieldHelper.setup(textField: textField)
}
else
{
TextFieldHelper.error(textField: textField)
}