Swift传递元素作为变量

时间:2017-05-17 01:35:56

标签: javascript ios swift

在javascript中,我知道我可以使用以下内容:

var foo = '';

function changeVariable(variable, data){
  this[variable] = data;
}

changeVariable("foo", "bar");

我可以在swift中做到这一点吗?

func toggleFadeIn (element: String, active: Bool)
{
    if(!active){
        self.element.alpha = 0;
        self.element.transform = CGAffineTransform(translationX: 0, y: 25)
    }

}

2 个答案:

答案 0 :(得分:0)

Javascript是一种动态语言,具有在运行时以这种方式修改对象的功能。

静态语言(如Swift,Java,C#和许多其他语言)需要一个反射库来实现此类行为。不幸的是,Swift具有非常有限的反射能力(Mirror),并且还没有能力通过String名称修改对象/结构成员。

如果你详细说明你究竟想要实现的目标,我们将能够更好地提出解决方案。

答案 1 :(得分:-2)

您所描述的内容可以在NSObjects上使用KVO。它依赖于Objective-C动态消息传递,但它确实有效。查看Apple's Key Value Programming Guide中记录的函数setValue:forKey:

请注意,这绝对不是快速的,不推荐。