2017-08-31 36 views
-1

我有声明,像这样的字典:通过字典中夫特3 errror循环

var dictBarData = [String: Any]() 

我然后声明和填充第二字典像这样,然后添加第二字典到第一:

var dictThisBar = [String:Any]() 
     dictThisBar["category"] = category 
     dictThisBar["barValue"] = value 
     dictThisBar["barView"] = vThisBar 

     dictBarData[String(barIndex)] = dictThisBar 

当我去找回他们,我这样做:

for (key, value) in dictBarData { 
      let dictThisBar = dictBarData[key] 
      for(key, value) in dictThisBar { 
      } 
     } 

但我得到的错误第二个for循环,类型Any不符合协议顺序。类型任何不符合序列协议

回答

0

根据声明dictBarData的所有值是Any

您必须向下投价值

let dictThisBar = dictBarData[key] as! [String:Any] 

然而,强烈建议使用可选的绑定

if let dictThisBar = dictBarData[key] as? [String:Any] { ...