我有一个AnyObject
字典,我想循环获取密钥和值,但同时将它们转换为String
var headers: [NSObject : AnyObject] = [:]
headers["Content-Type"] = "application/pdf"
for (key, value) in headers {
println(key)
println(value)
}
我认为它会像下面这样但是这给了我Type '(String, String)' does not conform to protocol 'SequenceType'
for (key, value) in headers as (String, String) {
println(key)
println(value)
}
我知道我可以像(key as! String)
一样内联,但我认为你可以把它作为你的循环。非常感谢任何帮助!
答案 0 :(得分:5)
您要求编译器迭代headers
作为字符串元组,但headers
是字典,而不是元组。
解决方案是使用正确的类型一次转换整个headers
字典,键为String,值为String,如下所示:
for (key, value) in headers as! [String:String] {
println(key)
println(value)
}
当然,请注意,如果任何键或值不是String,它将崩溃。
如果您不确定所有的键和值都是字符串,则必须使用原始类型迭代字典,然后使用安全检查在循环内转换为字符串。