1

我正在使用 JSONDecoder 将 JSON 解码为 MyModel 数组:

myModelArray : [MyModel] = try JSONDecoder().decode([MyModel].self, from: data)

一切正常,我得到了我的数组,但我想在每次元素完成解码时为模型数组的每个元素执行一个方法。现在我正在这样做:

for city in myModelArray! {
    //Creating polygon 
    city.createPolygon()
}

它可以工作,但不是最优的,有没有办法在每次解码器完成解码数组的一个元素时执行一个方法?例如完成?

谢谢

4

1 回答 1

0

感谢 Joakim 的回答,我只需要通过在我的 Decodable 模型中覆盖init(from decoder: Decoder)来手动解码,如下所示:

required init(from decoder: Decoder) throws {
    let values = try decoder.container(keyedBy: CodingKeys.self)

    property1 = try values.decode([String].self, forKey: .property1)
    property2 = try values.decode(String.self, forKey: .property2)

    //Calling my method
    getCityPolygon()
}
于 2018-07-21T18:51:17.907 回答