我需要一组可写键路径来编辑变量,但该类未定义。我怎么能做这样的事情?
var properties: [ WritableKeyPath< AnyClass, Double > ]
properties.append( Class1.tag )
properties.append( AnyClass2.volume )
func setPropertie (keyIndex: Int, value : Double) {
anyObject[keyPath: properties[keyIndex] ] = value
}
在这种情况下,尝试 append( \Class1.tag ( 得到此错误:类型 'AnyClass'(又名 'AnyObject.Type'(没有成员 'threshold'
你的WritableKeyPath<AnyClass,Double>
被AnyClass
但你放置了特定于类的键路径。
Class1
AnyClass
将无法访问其tag
对象。
同样AnyClass2
AnyClass
也将失去对其volume
对象的访问权限。
因此,Class1.tag
和AnyClass2.volume
不适用于WritableKeyPath<AnyClass,Double>
相反,您可以做的是:
var properties = [AnyKeyPath]()
properties.append(Class1.tag)
properties.append(AnyClass2.volume)