Jor*_*n H 7 key-value-observing ios swift swift4
我想使用Swift 4中基于块的KVO来观察值的变化UserDefaults.我能够观察的关键路径做到这一点WKWebView的estimatedProgress,但都没有成功与UserDefaults因为提供的关键路径是不是它的寻找.提供一个字符串是不够的(无法推断通用参数'值'),前缀\不够(表达式类型没有更多上下文是模糊的).创建KeyPath观察值的正确方法是UserDefaults什么?
observerToken = UserDefaults.standard.observe("myvalue") { (object, change) in
//...
}
Run Code Online (Sandbox Code Playgroud)
是的,它是可能的。首先,您需要将keypath定义为
extension UserDefaults
{
@objc dynamic var isRunningWWDC: Bool
{
get {
return bool(forKey: "isRunningWWDC")
}
set {
set(newValue, forKey: "isRunningWWDC")
}
}
}
Run Code Online (Sandbox Code Playgroud)
并将该键路径用于基于块的KVO作为
var observerToken:NSKeyValueObservation?
observerToken = UserDefaults.standard.observe(\.isRunningWWDC, options:[.new,.old])
{ (object, change) in
print("Change is \(object.isRunningWWDC)")
}
UserDefaults.standard.isRunningWWDC = true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2644 次 |
| 最近记录: |