由于“内部”保护级别,初始化程序无法访问

时间:2018-03-26 11:20:49

标签: ios swift swift3

我的项目下有一个子项目。

子项目中,我有一个协议:

public protocol MyProtocol {
    func print()
}

子项目中,我还有一个School结构,它接受一个符合初始化程序中MyProtocol的实例:

public struct School {
    var name: String
    var delegator: MyProtocol
    public init(name: String, delegate: MyProtocol) {
        self.name = name
        self.delegator = delegate
    }
}

在我的项目(导入子项目)中,我有一个UIViewController,我有一个符合MyProtocol的扩展名。

class MyVC: UIViewController {
  ...
  override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
     // ERROR: 'School' initializer is inaccessible due to 'internal' protection level
     let school = School(name: "John", delegate: self)
  }

}

我将MyVC扩展为符合MyProtocol

extension MyVC : MyProtocol {
    public func print() {
        // printing...
    }
}

为什么我会收到错误?怎么解决?

0 个答案:

没有答案