我的项目下有一个子项目。
在子项目中,我有一个协议:
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...
}
}
为什么我会收到错误?怎么解决?