Swift中函数声明中的预期标识符

时间:2016-04-27 08:31:33

标签: ios swift function methods

我是Swift的新手,并试图习惯......

我在自定义UIButton类上尝试简单的init方法。

但它表示功能声明中的预期标识符

我的方法如下,

override func init(frame: CGRect) {    
 }

我搜索了大量错误的答案,但无法获得成功。

这有什么问题?

谢谢,

BR

2 个答案:

答案 0 :(得分:2)

遗漏func

override init(frame: CGRect) {
    // ...
}

答案 1 :(得分:1)

首先,您无法使用func关键字编写init。你需要这样写:

class myButton: UIButton {

  override init(frame: CGRect) {
    super.init(frame: frame)
  }

  required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
  }
}

根据Apple doc's

实现初始值设定项的每个UIView子类都必须包含init?(coder:)的实现。 Swift编译器知道这一点,并提供了一个修复程序,可以在代码中进行此更改。修复 - 它由编译器提供,作为代码中错误的潜在解决方案。

you can follow this link