对成员的不明确的引用' decode(_:forKey :)' swift4

时间:2018-05-07 13:53:30

标签: swift swift4 codable

我正在解析需要从服务器上的字典(这是遗留数据格式)转换的响应 - 简单地说是客户端上的字符串数组。因此,我想要解码名为“数据”的密钥。作为字典,所以我可以遍历键并在客户端创建一个字符串数组。

init(from decoder: Decoder) throws  {
  let values = try decoder.container(keyedBy: CodingKeys.self)
  do {
    let some_data_dictionary = try values.decode([String:Any].self, forKey: CodingKeys.data)

    for (kind, values) in some_data_dictionary {
      self.data_array.append(kind)  
    }
  } catch {
    print("we could not get 'data' as [String:Any] in legacy data \(error.localizedDescription)")
  }
}

我得到的错误是:Ambiguous reference to member 'decode(_:forKey:)'

1 个答案:

答案 0 :(得分:1)

看起来像Swift' Codable'不支持任何或使用[String:Any],所以在这里使用这篇文章Swift 4 decodable nested json with random key attributes

我能够为一个我不会使用的名为LegacyData的类创建一个结构,然后将键解包为一个字符串数组

https://api.instagram.com/v1/users/self/media/recent/?access_token=ACCESS-TOKEN