我无法使用其超类将KeyPath
相关对象条件转换为KeyPath
。有这个简单的设置
class Foo {
let name: String
init(name: String) {
self.name = name
}
}
class Bar: Foo {}
let keyPath = \Bar.name
if let keyPath = keyPath as? KeyPath<Foo, String> {
print(keyPath)
}
它警告我的打印方法永远不会被执行,因为
来自&#39; KeyPath&lt; Bar,String&gt;&#39;不相关的类型&#39; KeyPath&lt; Foo, 串GT;&#39;总是失败
一般来说,我希望能够在AnyObject
内使用KeyPath
进行操作,但这种行为阻止了我这样做。有人可以解释一下预告如何适用于KeyPath
并可能提供一种解决方法吗?