我有以下協議:
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。如果這可以以另一種方式完成,那麼這將回答我的問題。但我想知道我在這裏做錯了什麼。