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