使用后代子类覆盖Swift属性

时间:2016-03-25 14:05:13

标签: swift properties override

我想覆盖后代属性,因为我想直接使用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!'

1 个答案:

答案 0 :(得分:1)

Swift不允许您更改任何变量或属性的类类型。

请参阅相关问题:Overriding superclass property with different type in Swift