我在Xcode中有一个变量,我需要用它来构造另一个命令。我该如何结合这个?这是概念
我有一个名为“activechannel1”的变量和按钮Overlay1 - Overlay12
我想设置特定按钮的图像,按钮将取决于activechannel1的值。所有数字都对应于文件名,所以我试图这样做。
让我们说
ActiveChannel1 = 6 // This changes and represents which button I want to change
我正在尝试这样做,但我得到一个连续的语句错误:
Overlay"\(ActiveChannel1)".image = UIImage(named: "y\(ActiveChannel1)")
我想基本上屈服于:
Overlay6.image = UIImage(named "y6")
答案 0 :(得分:0)
您无法动态"键入"变量名。但是,可以以这样的方式访问它们:变量可以改变您使用的变量。
您可能觉得有用的课程(请注意,您在Swift中使用这些课程的方式有所变化):
NSArray
NSDictionary
将X作为数字(在此处以字符串的形式):
对于OverlayX
,您可以使用数组。
let overlays = [Overlay1, Overlay2, /*...*/]
使用索引0-11访问正确的变量。
yX
使用NSString(format:)
。
//use %d for int
let imageName = NSString("y%@", X - 1) //%@ is Obj-C format for id IIRC, I'm not sure if it changes in Swift
overlays[X - 1].image = UIImage(named: imageName)
//or, in a single line
overlays[X - 1].image = UIImage(named: NSString(format: "y%@", argList: X - 1))
请注意,此代码未经测试。
另请注意,我使用的是Objective-C而不是Swift。如果有人遇到此问题并发现语法不正确,请评论或编辑我的帖子。