2015-04-04 85 views
1

最近我從Xcode 6.2更新到Xcode 6.3 beta 4並打開了我的項目。我在init()上發生了以下錯誤:Missing argument for parameter 'coder' in call。繼承人我的init()方法:在調用中缺少參數'編碼器'的參數

public init(image: UIImage?) { 
    super.init() 
    commonInit(image) 
} 

任何解決方案?

回答

2

Swift初始化器處理非常棘手,非常特別。你應該在語言文檔中閱讀Swift Initializers以瞭解你在做什麼。

您可以擁有多個init方法,但您必須遵守繼承和層次結構規則。你需要明確地瞭解什麼叫做convenience初始值設定項。

說了這麼多,很多類需要至少一個初始化過載是這樣的:因爲它認爲這是你想要什麼創造,但這樣做是錯誤的

init(coder aDecoder: NSCoder!) 
{ 
    super.init(coder: aDecoder) 
} 

編譯器可能會抱怨。