无法分配类型' [货币]的值?'输入' [货币]?。输入'

时间:2018-02-19 13:40:43

标签: json swift4 decodable

我正在尝试解码具有可选数组的结构

struct AppInitData:Decodable{

    var ApplicationID:String?
    var Currencies = [Currency]?

    enum CodingKeys: String, CodingKey {
        case ApplicationID = "ApplicationID"
        case Currencies = "Currencies"
    }

    enum DataKeys: String, CodingKey {
        case AppInitData = "Data"
    }

    public init(from decoder: Decoder) throws {

        let values = try decoder.container(keyedBy: DataKeys.self)
        let productValues = try values.nestedContainer(keyedBy: CodingKeys.self, forKey: .AppInitData)

        self.Currencies = try productValues.decodeIfPresent([Currency].self,forKey:.Currencies)

    }

编译错误1:

  

var Currencies = [Currency]? ==>预期的会员名称或   类型名称后的构造函数调用

编译错误2:

  

self.Currencies = try productValues.decodeIfPresent([Currency].self,forKey:.Currencies) ==>   无法分配类型' [货币]的值?'输入' [货币]?。输入'

不确定这里缺少什么,有人可以指出吗?

1 个答案:

答案 0 :(得分:1)

声明它就像这样

   var Currencies :[Currency]?