是否可以将变量覆盖为常数? 基本上,这是我能想到的最好的方法:
class TextStyle: UITextLabel {
private let _textStyle: FontStyle
override public var textStyle: FontStyle {
get { return _textStyle }
set {
#warning ("you cant set")
if newValue != _textStyle {
self.textStyle = _textStyle
}
}
}
init(frame: CGRect, textStyle: FontStyle) {
self._textStyle = textStyle
super.init(frame: frame)
}
required public init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
如果无法将var覆盖为常量,我希望在编译时通知用户他们无法设置该属性。 #warning
不起作用,只是我能想到的最好的。我相信可以使用协议来完成此操作,这更复杂。类似于可编码,可编码和可解码。