2016-11-13 26 views
0

我在我的Xcode項目中創建了一個變量。無法爲AnyObject類型調用初始化程序?沒有參數

var user = AnyObject?() 

這行代碼作爲錯誤返回。錯誤消息說

無法爲類型'AnyObject?'調用初始值設定項?沒有論據

爲什麼我收到這個錯誤,我該如何解決它?

+1

'AnyObject'是一個協議。你不能創建一個'AnyObject'的實例。 – rmaddy

+0

@rmaddy但'AnyObject?'* *是一個具體類型(即'Optional '),您可以創建一個實例;)(不再使用'init()',因爲OP在此嘗試執行) – Hamish

+0

'var user = AnyObject?.self as Any ... ... –

回答

0

你寫什麼是等價的:

var user = Optional<AnyObject>.init() 

Optional沒有一個init()初始化。你想做什麼?

+1

在Swift 2中,'Optional'確實有一個'init()',它創建了一個設置爲'.None'的新實例 - 但是在Swift 3中,this初始化程序已被刪除。相當於簡單的'var user:AnyObject?' - 雖然這是所有[在我提出的愚人問答中提到](http://stackoverflow.com/questions/39549717/what-happened-to-the-uiview-constructor-在-迅速-3-0)。 – Hamish

0

如果你真的試圖定義AnyObject?類型的變量,你想放的Optional<AnyObject>裏面,你可以簡單地寫

var user: AnyObject? = .none 

或由@Hamish

建議
var user: AnyObject? 
+1

(Mutable)optionals默認值爲'.none' :) – Hamish

+0

@Hamish:謝謝! –

相關問題