用子类重写Swift属性
我想重写子体属性,因为我想直接使用用子类重写Swift属性,swift,properties,overriding,Swift,Properties,Overriding,我想重写子体属性,因为我想直接使用TestViewModel类中的方法,而不必将ViewModel强制转换为TestViewModel。 我想这是不可能的。你能提出一些好的解决办法吗。代码和错误如下: class ViewModel { } class View: UIView { weak var viewModel: ViewModel! } class TestViewModel { } class TestView: View { weak var viewMode
TestViewModel
类中的方法,而不必将ViewModel
强制转换为TestViewModel
。
我想这是不可能的。你能提出一些好的解决办法吗。代码和错误如下:
class ViewModel {
}
class View: UIView {
weak var viewModel: ViewModel!
}
class TestViewModel {
}
class TestView: View {
weak var viewModel: TestViewModel! // error here
}
出现以下错误:
/用户/evgeniirtishchev/Documents/Development/rdfuturesales/RDProject/View/Identification/IdentificationView。swift:12:26:
无法重写类型为“viewModel!”的可变属性“viewModel!”具有
协变类型“IdentificationViewModel!”
Swift不允许您更改任何变量或属性的类类型
请参阅相关问题:Swift不允许您更改任何变量或属性的类类型
参见相关问题:您是指上面的
类测试视图:视图吗?(而不是..:UIView
)@dfri是的,对不起,您的意思是上面的类TestView:View
?(而不是…:UIView
)@dfri是,对不起,输入错误