将字符串转换为变量

时间:2015-07-17 16:38:24

标签: ios string swift variables

你好我有一个in循环,其中元素是被改变的变量,在这种情况下"元素"是一个字符串,但for循环中有一个对应的变量,与名为elements的字符串同名。所以我的意思是外面有一个Var时间= [some,text,words]和theres a for for循环调用名为"时间"并且我想知道如何将for in循环中的字符串转换为变量,如何在没有特别说"时间&#的情况下取消"'(不是那么简单我知道) 34;(变量),而是将"元素"(字符串' time')字符串转换为变量。如果我没有意义,我希望自己能够清楚,我会再试一次。

1 个答案:

答案 0 :(得分:1)

您不能通过Swift中的名称动态引用局部变量。如果可以的话,这会破坏许多编译器优化以及类型安全。

如果类符合键值编码,则可以通过名称引用对象属性。例如:

class X : NSObject {
    let time = ["some", "text", "words"]

    func readWordsFromProp(name: String) -> String {
        guard let list = self.valueForKey(name) as? [String] else {
            return ""
        }
        var result = ""
        for word in list {
            result += word
        }
        return result
    }
}

let x = X()
print(x.readWordsFromProp("time"))

一般来说,有更好的方法可以使用不依赖脆弱名称匹配的闭包在Swift中完成任务。但KVC可以成为一个非常强大的工具