Usage of where in if let assignment in Swift

IosSwiftWhereOptionalSwift3

Ios 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)
}

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionFabrizio BartolomucciView Question on Stackoverflow
Solution 1 - IosGrimxnView Answer on Stackoverflow
Solution 2 - IosAlexView Answer on Stackoverflow
Solution 3 - IosluhuiyaView Answer on Stackoverflow