2015-04-04 83 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) 
} 

编译器可能会抱怨。