【问题标题】:Overriding Swift property with descendant subclass用后代子类覆盖 Swift 属性
【发布时间】:2016-07-13 07:12:51
【问题描述】:

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

【问题讨论】:

  • 您是说上面的class TestView: View 吗? (而不是... : UIView)。
  • @dfri 是的,对不起,错字

标签: swift properties overriding


【解决方案1】:

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

查看相关问题:Overriding superclass property with different type in Swift

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-02
    • 2011-08-19
    • 2018-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多