Ios 计算属性生成“;重写声明需要一个';覆盖';关键词";错误
代码如下。为什么会出现“覆盖声明需要“覆盖”关键字”错误?这不是为属性提供getter和setter的“快速”方法吗Ios 计算属性生成“;重写声明需要一个';覆盖';关键词";错误,ios,swift,Ios,Swift,代码如下。为什么会出现“覆盖声明需要“覆盖”关键字”错误?这不是为属性提供getter和setter的“快速”方法吗 class TestClass : UICollectionViewCell { var _selected = false var selected : Bool { get { return _selected } set { _selected
class TestClass : UICollectionViewCell {
var _selected = false
var selected : Bool {
get {
return _selected
}
set {
_selected = newValue
selectedView.hidden = !_selected
}
}
}
我相信您出错的原因是
UITableViewCell
已经定义了一个名为selected
的属性 首先,不要在Swift中使用\u selected
。这是Objective-C风格。
其次,在var selected:Bool
之前加上override
关键字,因为它的super声明了一个同名的属性
更新:
这是一个存储值,您不需要做任何事情来获取它的值,因为swift将自动存储它
override var selected : Bool {
get {
return super.selected
}
set {
selectedView.hidden = !newValue
}
}
或使用didSet:
override var selected : Bool {
didSet {
selectedView.hidden = !selected
}
}
使用store value保留持久性值。使用computing(具有getter)获取实时值。快速方法是使用
override
关键字显式标记重写的方法和属性;)如果未选中,您有什么建议?@Crashalot在swift中,使用set、didSet、willSet、get和oldValue、newValue来处理属性。您可以在iBook中查看swift编程。此外,您还应该区分计算和存储值。set、didSet、willSet、get
的问题是它会分解变量定义,我更喜欢将它们分组在一起,每个声明放在一行上,以便浏览。知道如何使用set、didSet、willSet、get
,同时允许在块中定义变量(一次一行)?@Crashalot更新了我的答案。谢谢,但你错过了答案几秒钟!不过,投票结果是上升的。