我需要一个可写键路径数组来编辑变量,但是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对象。
类似地,AnyClass2AnyClass也会失去对其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/

10-10 20:33