首页 > 解决方案 > 覆盖符合 associatedtype 的基类的类型

问题描述

可以说我有这门课:

protocol GenericViewModel {
  associatedtype Model
  associatedtype ViewModel
}

class BaseVc: GenericViewModel {

typealias Model = ModelA
typealias ViewModel = ViewModelA
var baseVm:ViewModel<Model>

}

现在我想用 baseVm 属性的其他类型扩展基本 vc

class AwesomeVc: BaseVc {

typealias Model = ModelB
typealias ViewModel = ViewModelB

}

预期的结果是,当我键入时,viewModel我应该看到编译器识别ViewModelB,实际上我看到没有办法“ override”在基类中指定的值。

我怎样才能实现这种行为?

标签: swiftgenerics

解决方案


推荐阅读