我需要一组可写的键路径来编辑变量,但是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)会出现此错误:输入&#39; AnyClass&#39; (又名&#39; AnyObject.Type&#39;)没有会员&#39;阈值&#39;
答案 0 :(得分:1)
您的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)