我想观察仅在较新的iOS版本上可用的属性的didSet
。我试过了:
class CustomNavigationBar: UINavigationBar {
@available(iOS 11.0, *)
override open var prefersLargeTitles: Bool {
didSet {
print(prefersLargeTitles)
}
}
}
但是我得到了:
:0:错误:“ prefersLargeTitles”仅在iOS 11.0或更高版本上可用
Xcode版本9.4(9F1027a)
斯威夫特4.1
iOS部署目标9.0
iPhone SE 11.4模拟器
最佳答案
我不确定为什么didSet
与@available
不兼容,但是我发现了get
+ set
的解决方法,该方法可以正常生成:
@available(iOS 11.0, *)
override open var prefersLargeTitles: Bool {
get {
return super.prefersLargeTitles
}
set {
super.prefersLargeTitles = newValue
// `didSet` logic here:
print(prefersLargeTitles)
}
}