【发布时间】:2019-12-23 06:07:30
【问题描述】:
我读到NSObject.observe<Value>() 是用于注册 KVO 观察者的新 API(在 Swift 4 中引入),它支持 Swift 键路径表达式和闭包。我想知道新 API 中注销观察者的方法是什么?
observe<Value>() 方法返回一个NSKeyValueObservation 对象,该对象没有显式取消观察的方法(根据其代码,当对象被 ARC 释放时,它会隐式执行此操作)。所以似乎唯一的方法是使用旧的NSObject.removeObserver(),它使用旧的 keypath String 参数?
我还发现很难找到这个observe() API 的文档。在NSObject doc 中没有提到它(该文档包含observeValue() 的描述但不是这个observe<Value>),并且XCode 中的代码完成不适用于它。我发现苹果官方文档中提到的唯一地方是这篇文章Using Key-Value Observing in Swift。这让我想到这是不完整的还是正在进行的工作? (但鉴于它是在 Swift 4 时间框架中引入的,我对此表示怀疑)。
【问题讨论】:
标签: ios swift key-value-observing