如何从类似名称的变量中获取价值

时间:2016-04-15 20:38:04

标签: swift

定义了顺序变量名称。我想达到相对于相应值的变量。

 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" ??

我没有得到我想要的结果。 我希望我能正确解释。谢谢你的帮助。

1 个答案:

答案 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提供的许多安全性。