我在项目中启用了 SwiftLint ,它对以下函数发出警告:
override func observeValue(forKeyPath keyPath: String?, of _: Any?, change: [NSKeyValueChangeKey: Any]?, context _: UnsafeMutableRawPointer?) {
. . .
}
Shell 脚本调用警告:基于块的 KVO 违规:使用 Swift 3.2 或更高版本时,更喜欢带有关键路径的基于新块的 KVO API。
有什么解决办法吗?
最佳答案
制作 Block Base KVO Here 的好教程
class CounterModel : NSObject {
@objc dynamic var value = 0
@objc dynamic var messages = [String]()
}
model.observe(\.value, options: [.initial]) { (model, change) in
self.label.text = String(model.value)
}
关于ios - Xcode 9 : Block Based KVO Violation for observeValue function,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49747536/