初始化程序只能在类型/编码器中声明

时间:2016-12-18 23:22:59

标签: swift

我使用this tutorial来创建一个简单的购物清单应用。我对这些代码行有疑问:

override func viewDidLoad() {
    super.viewDidLoad()

    required init?(coder aDecoder: NSCoder) {   // error appears here
        self.init(coder: aDecoder);

        loadItems()
  }
}

有一个错误:初始化程序只能在一个类型中声明。 为什么不正确?我应该在这里改变什么?

1 个答案:

答案 0 :(得分:1)

初始值设定项必须放在类型级别,而不是放在任何其他函数内。

class Item: NSObject, NSCoding {

    required init?(coder aDecoder: NSCoder) {
        self.init(coder: aDecoder)
        loadItems()
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        // this code runs when the view loads
    }

    func loadItems() {
        // item loading code here
    }

}