我需要一个可写键路径数组来编辑变量,但是Class是未定义的。我该怎么做?
var properties: [ WritableKeyPath< AnyClass, Double > ]
properties.append( \Class1.tag )
properties.append( \AnyClass2.volume )
func setPropertie (keyIndex: Int, value : Double) {
anyObject[keyPath: properties[keyIndex] ] = value
}
在这种情况下,尝试附加(\ Class1.tag)会收到此错误:类型'AnyClass'(aka'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)
关于ios - 具有未定义类的可写键路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49380130/