我尝试使用相关协议编译Swift文件,但编译失败并出现错误
import Foundation
protocol ViewProtocol {
}
protocol PresenterProtocol {
associatedtype ViewType: ViewProtocol
var view: ViewType {get}
}
protocol ExampleViewProtocol: ViewProtocol {
}
class ExamplePresenter: PresenterProtocol {
var view: ExampleViewProtocol
init(view: ExampleViewProtocol) {
self.view = view
}
}
错误出现在Xcode 10.2和XCode 10.1中:
类型“ ExamplePresenter”不符合协议“ PresenterProtocol”
我不明白为什么。应该怎么做才能使其编译?
答案 0 :(得分:1)
问题是ExampleViewProtocol
继承自ViewProtocol
,而不是遵循ExampleViewProtocol
。为了使代码编译,您可以尝试改编ExampleViewProtocol
使其成为一个类。这将使ViewProtocol
成为一种具体类型,使其符合columnsToSplit
。