我们知道我们可以使用 if let
语句作为速记来检查可选的 nil 然后展开。
但是,我想使用逻辑 AND 操作符 &&
将它与另一个表达式组合在一起。
因此,例如,在这里我做了可选的链接来展开并可选地将 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
语句 没有一个 switch
语句或一个三元 ?
操作符来完成这个操作。