我正在尝试解码具有可选数组的结构
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)
==> 无法分配类型' [货币]的值?'输入' [货币]?。输入'
不确定这里缺少什么,有人可以指出吗?
答案 0 :(得分:1)
声明它就像这样
var Currencies :[Currency]?