두 클래스가 있다고 가정 해 봅니다 : FirstViewController
및 SecondViewController
.클래스의 인스턴스를 캐스팅합니다.
self.tabBarController?.viewControllers![0]
은 둘 중 하나의 인스턴스 일 수 있습니다.
이 하나가 문제가되지 않습니다 :
let aVC = self.tabBarController?.viewControllers![0]
let classOfVC = object_getClass(aVC)
let myVC = aVC as! classOfVC
어떤 제안 :
let firstVC = self.tabBarController?.viewControllers![0] as! FirstViewController
그러나 이것은 하나의 오류를 제공 "classOfVC는 형식이 아닙니다"?
편집 : isKindOfClass를 사용하고 싶지 않습니다. if ... else if ...를 사용하지 않으려 고합니다. 둘 이상의 클래스가 envolved이기 때문에 사용하고 싶지 않습니다.
메타 타입'classOfVC'는 런타임까지는 알 수 없지만 컴파일러는'myVC'에 대한 정적 타입을 필요로합니다. 그래서 당신이하려는 것은 그다지 의미가 없습니다. 당신이 해결하려고하는 실제 문제는 무엇입니까? 이 Q & A는 관련성이 있습니다. http://stackoverflow.com/questions/38792315/class-casting-dynamically-in-swift – Hamish