【发布时间】:2017-10-14 12:21:02
【问题描述】:
我正在使用新的 Swift 4 KVO 和 KeyPath API 来观察对象的变化。具体来说,我试图在NSArrayController 的选择对象上观察一些东西。问题是selection 的类型为Any,这似乎与生成所需的键路径不一致,因为编译器不知道Any 类型的对象的任何属性。
该属性的名称是assetPointHeight。我的代码如下所示:
var observation: NSKeyValueObservation?
observation = arrayController.observe(
#keyPath(NSArrayController.selection.assetPointHeight),
options: [.new],
changeHandler: { [weak self] (_, _) in
self?.updateLabel()
}
)
我得到两个编译错误:
无法推断通用参数
Value
类型“Any”没有成员“assetPointHeight”
我怎样才能实现我在这里寻找的东西?还有另一种生成此 KeyPath 的方法吗?
【问题讨论】:
-
我遇到了同样的问题。解决方案是使用传统的 KVO 方式。
-
找到任何方法可以在不使用传统的基于字符串的 KVO 的情况下完成这项工作?
标签: swift macos key-value-observing swift4