假設我有兩個類:FirstViewController
和SecondViewController
。類型轉換類的實例
self.tabBarController?.viewControllers![0]
可以是來自這兩者之一的實例。
這一次是沒有問題的:
let firstVC = self.tabBarController?.viewControllers![0] as! FirstViewController
但這一次給出了錯誤 「classOfVC不是一個類型」:
let aVC = self.tabBarController?.viewControllers![0]
let classOfVC = object_getClass(aVC)
let myVC = aVC as! classOfVC
有什麼建議?
編輯:我不想使用isKindOfClass,因爲我試圖避免使用if ... else if ...並且因爲存在兩個以上的類envolved。
元類型'classOfVC'直到運行時才知道,但編譯器需要'myVC'的靜態類型,這就是爲什麼你試圖做的沒有多大意義。你試圖解決的實際問題是什麼?這個問答可能是相關的:http://stackoverflow.com/questions/38792315/class-casting-dynamically-in-swift – Hamish