我想覆盖restorationIdentifier
变量,以便所有继承自MyViewController
的视图控制器都将restorationIdentifier
设置为其类名。但是,似乎Swift不允许我这样做。
我想要重载并提供默认实现的var定义为:
var restorationIdentifier: String?
我尝试用:
覆盖它class MyViewController : UIViewController {
override var restorationIdentifier: String? {
return NSStringFromClass(self.dynamicType).componentsSeparatedByString(".").last!
}
}
编译器对我大喊:
使用Objective-C选择器获取
restorationIdentifier
restorationIdentifier
与getter冲突 来自超类restorationIdentifier
的{{1}} 相同的Objective-C选择器
我怎样才能克服这个?
答案 0 :(得分:1)
您没有定义setter,这使它成为只读属性。这段代码适合我:
override var restorationIdentifier: String? {
get {
return NSStringFromClass(self.dynamicType).componentsSeparatedByString(".").last!
}
set(value) {
super.restorationIdentifier = value
}
}