Использование where in if, если присвоение в Swift
Документация Swift на стр. 61 руководства Swift указывает на возможность использования where
для присоединения к необязательной привязке с обычным условием. Но когда я это делаю, у меня есть предупреждение, предлагающее мне заменить where
запятой, как в следующем фрагменте кода:
if let geocodingError = error as? NSError where geocodingError.code == 2
Ответы
Ответ 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)
}