无法从Dictionary值转换为Array

时间:2016-09-30 19:53:12

标签: ios swift

不知道为什么这不会起作用。这个字典的值是一个键,但每当我尝试转换为数组时,我都会遇到很多错误。以下是我尝试过的内容,每个示例都会出现错误(在所有示例中,parameters都是[String : Any]类型:

let paramsArray = parameters["inputVO"] as AnyObject
if let array = paramsArray as? Array {

}

错误:Generic parameter 'Element' could not be inferred in cast to 'Array<_>'

if let array = parameters["inputVO"] as? Array {

}

错误:Ambiguous reference to member 'subscript'

我不确定将结果转换为数组还能做些什么?我确定我以前做过这个,我不知道为什么会失败。非常感谢任何帮助。

编辑:这是我打印params时的输出。正如预期的那样,它填充了ArrayDictionary

Optional([["stmtDate": cmd, "transId": identifier, "isSupplementDataAvailable": true]])

1 个答案:

答案 0 :(得分:1)

它是一个数组

if let array = parameters["inputVO"] as? [[String:Any]] { ... }

或字典

if let dictionary = parameters["inputVO"] as? [String:Any] { ... }

这两种类型都是泛型,需要特定的类型信息

  • [[String:Any]]Array<Dictionary<String,Any>>
  • 的缩写形式
  • [String:Any]Dictionary<String,Any>
  • 的缩写形式