我有以下协议:
protocol BaseViewController {
typealias ViewModelType: BaseViewModel
var viewModel: ViewModelType? { get set }
}
protocol BaseViewModel {
}
我也有一个视图模型的以下协议:
protocol MainViewModel: BaseViewModel {
}
然后在我的MainViewController中:
class MainViewController: UIViewController, BaseViewController {
typealias ViewModelType = MainViewModel
var viewModel: ViewModelType?
...
}
个
错误
在MainViewController我得到的错误
Type 'MainViewController' does not conform to protocol 'BaseViewController'
下面这两个相关的错误:
- 在BaseViewController:
Unable to infer associated type 'ViewModelType' for protocol 'BaseViewController'
- 在MainViewController上视图模型属性
Inferred type 'BaseViewModel' (by matching requirement 'viewModel') is invalid: does not conform to 'BaseViewModel'
所需的结果
我想ViewModelType的值限制到符合协议BaseViewModel。如果这可以以另一种方式完成,那么这将回答我的问题。但我想知道我在这里做错了什么。