最近我从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)
}
任何解决方案?
答案 0 :(得分:2)
Swift初始化程序处理非常棘手且非常特别。您应该真正阅读语言文档中的Swift Initializers以了解您正在做的事情。
您可以拥有多个init方法,但必须遵守继承和层次结构规则。您需要明确了解所谓的convenience
初始化程序。
话虽如此,许多类需要至少一个init重载,如下所示:
init(coder aDecoder: NSCoder!)
{
super.init(coder: aDecoder)
}
编译器可能会抱怨,因为它认为你正在尝试创建但是做错了。