我想覆盖后代属性,因为我想直接使用TestViewModel
类中的方法而不将ViewModel
强制转换为TestViewModel
。
我认为这是不可能的。你能建议一些好的解决方案吗?代码和错误如下:
class ViewModel {
}
class View: UIView {
weak var viewModel: ViewModel!
}
class TestViewModel {
}
class TestView: View {
weak var viewModel: TestViewModel! // error here
}
出现此错误:
/Users/evgeniirtishchev/Documents/Development/rdfuturesales/RDProject/View/Identification/IdentificationView.swift:12:26: 无法覆盖可变属性' viewModel'类型' ViewModel!'同 协变类型' IdentificationViewModel!'
答案 0 :(得分:1)
Swift不允许您更改任何变量或属性的类类型。
请参阅相关问题:Overriding superclass property with different type in Swift