这是目录(原始plist形式):
我想做的是:
func getTaxWithZip(zip: Int) {
let path = NSBundle.mainBundle().pathForResource("NCZipCode", ofType: "plist")
let pLData = NSDictionary(contentsOfFile: path!)
let dict = pLData as! Dictionary<String, NSDictionary>
for dict2 in dict {
for item in dict2 {
}
}
}
我在for item in dict2
上收到此错误:
Type '(String, NSDictionary)' does not conform to protocol 'SequenceType'
如果我尝试将其更改为字典,我会收到此错误:
Cast from '(String, NSDictionary)' to unrelated type 'Dictionary<String, NSDictionary>' always fails
目标是查询plist键“ZipCode”以获取邮政编码。
我能够成功地让'pLData = NSDictionary(contentsOfFile:path!)'成功,所以访问plist没有任何问题。
答案 0 :(得分:1)
首先看看这一行
let dict = pLData as! Dictionary<String, NSDictionary>
哪个给你一个Dictionary<String, NSDictionary>
,它没有问题
然后是第一个for-loop
:
for dict2 in dict {
...
}
当你通过dict循环时,每个元素dict2实际上是一个元组(String, Dictionary)
然后你的第二个for-loop
试图循环一个不是SequenceType
的元组
您需要做什么:
for (str, dict2) in dict {
for item in dict2 {
}
}
或者
for dict2 in dict {
for item in dict2.1 {
}
}