定义了顺序变量名称。我想达到相对于相应值的变量。
var code = 2 // 5, 6, ... // corresponding values
var name : String
var name1 : String = "Aaaaaa"
var name2 : String = "Bbbbbb"
// var name3
// var name4 ...
name = "name" + String(code) // name = "Bbbbb" ??
我没有得到我想要的结果。 我希望我能正确解释。谢谢你的帮助。
答案 0 :(得分:3)
与Objective-C不同,您无法通过Swift中String
的名称访问变量。在您的情况下,您可能只想使用数组:
var code = 2 // 5, 6, ... // corresponding values
var names = ["Aaaaaa", "Bbbbbb"]
var name = names[code - 1] // "Bbbbbb"
如果您真的想从字符串名称动态执行此操作,则必须桥接到Objective-C,例如:
class SomeObject: NSObject {
var name1 : String = "Aaaaaa"
var name2 : String = "Bbbbbb"
func getName(code: Int) -> String {
let name = valueForKey("name" + String(code)) as! String // "Bbbbbb"
return name
}
}
SomeObject().getName(2) // "Bbbbbb"
当然,通过这样做,您将失去Swift提供的许多安全性。