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")
}
이렇게하면 컴파일 오류가 발생 합니다. 조건부 바인딩의 Bound 값은 Optional 유형이어야합니다 . 다양한 구문 변형을 시도한 결과 각각 다른 컴파일러 오류가 발생합니다. 나는 아직 순서와 괄호의 조합을 찾지 못했습니다.
따라서 문제는 가능합니까? 그렇다면 올바른 구문은 무엇입니까?
내가 함께이 작업을 수행 할 수 있습니다 if
진술 하지switch
문 또는 삼항 ?
연산자.
var foo : Int? = 10; if let bar = foo { if bar == 10 { println("Great success!") }}
if let bar = foo && bar == 10
는 Use of unresolved identifier "bar"
( bar
물론 두 번째 )입니다.
bridgeToObjectiveC
베타 5에서 사라졌습니다 (일반 용도로 사용되지 않았을 가능성이 높음). 2. 어쨌든 first
Swift의 내장 Array
유형 에 대한 메소드 가 있습니다 .