2017-02-09 64 views
0

我已創建了一個陣列像下面無法將類型的「任意」值指定的類型在迅速

var childControllers = NSArray() 
childControllers = NSArray(objects: OBDPage1, OBDPage2, OBDPage3, OBDPage4) 
self.loadScrollView(page: 0)// calling method 

現在我想用數組對象像下面

func loadScrollView(page: Int){ // method 
    if page >= childControllers.count { 
     return 
    } 
    // replace the placeholder if necessary 
    let controller: OBDPage1ViewController? = childControllers[page] 
} 

但我正在逐漸下面誤差

夫特-CarAssist /夫特-CarAssist/OBDCarMonitorDeatilViewController.swift:90:67:無法將類型 '任意' 到指定的類型「的值OBDPage1ViewCont滾筒?'

任何人都可以告訴我我要去哪裏,因爲我是新來的swift。

在此先感謝。 普里

回答

3

在斯威夫特工作,你可能使用雨燕Array而不是NSArray

var childControllers = [UIViewController]() 
childControllers = [OBDPage1,OBDPage2,OBDPage3,OBDPage4] 
self.loadScrollView(page: 0)// calling method 

然後

func loadScrollView(page: Int){ // method 

    if page >= childControllers.count { 
     return 
    } 

    // replace the placeholder if necessary 
    let controller = childControllers[page] as? OBDPage1ViewController 

} 
+0

謝謝你工作完美,因爲我想要的。 :) – Priyanka

1

試試這個:

let controller = childControllers[page] as! OBDPage1ViewController 

你必須明確地投數組值作爲OBDPage1ViewController,否則它只是Any型。

編輯:

更安全,建議您執行此使用IF-讓有條件的約束力。

if let controller = childControllers[page] as? OBDPage1ViewController { 
    //do something  
} 
+2

請不建議使用'!'作爲第一個解決方案,使用'作爲「這更安全並處理錯誤。 – Alistra

+0

第二回票是什麼?請至少指出,如果您打算回答答案,您認爲我可以改進。 –

相關問題