如果没有,我如何循环遍历IBOutlets(如temp1,temp2,temp3)并顺序执行属性?
在matlab中,我会连接一个字符串并使用eval。
for k = 1:3
eval(["temp",num2str(k)]);
end
我是Swift的新手,想要用IBOutlets做这件事。像,
for(var k = 0, ++k, k==4) {
eval(["self.temp",String(k),".backgroundcolor"]);
end
我知道eval函数是Matlab格式,但我只是表达了我想要做的事情。
答案 0 :(得分:3)
Swift是一种静态类型语言,所以在Matlab中实现类似“eval”的东西是不可能的。 您可以使用以下代码获得相同的行为:
@IBOutlet var labels: [UILabel]!
override func viewDidLoad() {
super.viewDidLoad()
for label in labels {
label.backgroundColor = UIColor.redColor()
}
}
虽然可能使用运行时可以做一些魔术,但连接同一个插座集合中的所有组件是最简单的方法。
答案 1 :(得分:0)