Подтвердить что ты не робот

Использование where in if, если присвоение в Swift

Документация Swift на стр. 61 руководства Swift указывает на возможность использования where для присоединения к необязательной привязке с обычным условием. Но когда я это делаю, у меня есть предупреждение, предлагающее мне заменить where запятой, как в следующем фрагменте кода:

if let geocodingError = error as? NSError where geocodingError.code == 2
4b9b3361

Ответ 1

В Swift 3 этот синтаксис изменился.

Что было

if let x = y, a = b where a == x {

Теперь

if let x = y, let a = b, a == x {

Обоснование заключается в том, что каждый подканал if ... { теперь является независимым булевым тестом.

См. Xcode Примечания к выпуску и Предложение Swift Evolution для получения дополнительной информации об этом изменении.

Ответ 2

Пример с двумя условиями

if let x = y, let a = b, a == x && !x.isEmpty {

Ответ 3

В xcode 9

if let str = textField.text as String!, !str.isEmpty
{
   params[key] = str
   TextFieldHelper.setup(textField: textField)
}
else
{ 
   TextFieldHelper.error(textField: textField)
}