2016-12-06 66 views
-1

我有一個叫服務變量,就像這樣:遷移到斯威夫特3

var service: AnyObject = [] //Swift 2.3 

我的問題是如何將這種遷移到斯威夫特3.我在iOS的一個小白,我看着在互聯網,但無法得到它。

PS。我得到一個錯誤「上下文類型'AnyObject'不能用於數組文字」

在此先感謝!

回答

3

你在做什麼總是錯的。如果您在初始化時沒有價值,請使用可選項。理想情況下,您應該將其聲明爲獲取值時的實際值類型(而不是AnyObject等全能型)。但是,如果你不能做到這一點,那麼就使用Any?

var service : Any? 

或者,如果這件事情的類型知 - 例如,如果你知道這將是一個詞典 - 那麼它聲明作爲一個字典,可能通過提供一個空的字典,例如:

var service = [AnyHashable:Any]() 
+0

感謝的人工作了,但現在我得到了「輸入」任何?沒有下標成員「 –

+0

所以你對另一個答覆者撒謊了。它是一個數組。你爲什麼不接受他的回答? – matt

+0

因爲它不是一個數組,所以爲什麼 –

0

var service = [AnyObject]()將工作。

+0

我覺得這種方式是一個數組,煤礦只是一個變量,但我需要的時候我宣佈它來初始化它,但這種方式不斯威夫特3 –

0

以下是在夫特-3使用它的一例

var service = [AnyObject]() //Swift 3 
service = ["a" as AnyObject,"b" as AnyObject] 
print(service) 

輸出:

a,b