gpt4 book ai didi

Swift:无法使用只读属性 'xxx' 覆盖可变属性

转载 作者:行者123 更新时间:2023-12-04 13:36:11 25 4
gpt4 key购买 nike

我不明白这个错误的含义。这就是我想要做的:

protocol P {
var testTitle: String? { get }
}

class MyViewController: UIViewController, P {
var testTitle: String? {
didSet {
self.title = testTitle
}
}
}

final class TestViewController: MyViewController {
var testTitle: String? { // Error occurs here
return "Test"
}
}

我得到:

Cannot override mutable property with read-only property 'testTitle'



你能帮我理解发生了什么吗?也许这对某些人来说是微不足道的,但对我来说不是。

谢谢你的帮助。

最佳答案

您不能实现比基类更具限制性的子类(它只能反过来工作)。因此,如果基类实现了读/写属性,则不能在派生类中使其只读。

所以:

final class TestViewController: MyViewController {
override var testTitle: String? { // No error occurs here
get {
return "Test"
}
set {
super.testTitle = newValue
}
}
}

关于Swift:无法使用只读属性 'xxx' 覆盖可变属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55297577/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com