Мы знаем, что мы можем использовать оператор if let
в качестве сокращения, чтобы проверить необязательный nil, а затем распаковать.
Однако я хочу объединить это с другим выражением, используя логический оператор И &&
.
Итак, например, здесь я делаю необязательную цепочку для разворачивания и, возможно, опускаю свой rootViewController на tabBarController. Но вместо того, чтобы иметь вложенные операторы if, я хотел бы объединить их.
if let tabBarController = window!.rootViewController as? UITabBarController {
if tabBarController.viewControllers.count > 0 {
println("do stuff")
}
}
Комбинированное значение:
if let tabBarController = window!.rootViewController as? UITabBarController &&
tabBarController.viewControllers.count > 0 {
println("do stuff")
}
}
Вышеприведенная ошибка компиляции Использование неразрешенного идентификатора 'tabBarController'
Упрощая:
if let tabBarController = window!.rootViewController as? UITabBarController && true {
println("do stuff")
}
Это дает ошибку компиляции Связанное значение в условной привязке должно быть необязательного типа. Проведя различные синтаксические изменения, каждый из них дает другую ошибку компилятора. Мне еще предстоит найти выигрышную комбинацию порядка и круглых скобок.
Итак, вопрос в том, возможно ли и если да, то какой правильный синтаксис?
Обратите внимание, что я хочу сделать это с помощью инструкции if
не a switch
или тройного оператора ?
.