我使用this tutorial创建一个简单的购物列表应用程序。我对这几行代码有问题:

override func viewDidLoad() {
    super.viewDidLoad()

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

        loadItems()
  }
}

出现错误:只能在类型内声明初始值设定项。
为什么不正确?我该在这里换什么?

最佳答案

初始化器必须放在类型级别,而不是放在任何其他函数中。

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
    }

}

关于swift - 初始化程序只能在类型/编码器中声明,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41213962/

10-12 07:37