首页 > 解决方案 > 快速迭代对象变量

问题描述

基本上,我有这个来自服务器的可解码模型

class CalculateModel: Decodable {
    var ipn     : CalculateModelDetail?
    var sn      : CalculateModelDetail?
    var opv     : CalculateModelDetail?
    var oppv    : CalculateModelDetail?
    var opvr    : CalculateModelDetail?
    var so      : CalculateModelDetail?
    var osms    : CalculateModelDetail?
    var vosms   : CalculateModelDetail?
}
class CalculateModelDetail : Decodable {
    var value   : Double?
    var name    : String?
    var payer   : String?
}

我想做的是这样的

var calculatedValue: CalculateModel?

*api logic*
{
self.calculatedValue = result
}

我如何迭代这些值?

for element in calculatedValue {
print(element)

}

必须像那样打印ipn,sn,opv,但这在逻辑上不正确ofc

标签: iosswiftfor-loop

解决方案


我认为您需要像这样解码并删除CalculateModel

let res = try JSONDecoder().decode([String:CalculateModelDetail].self,from:data)

这样,您可以更好地控制键和值

print(Array(res.keys))
print(Array(res.values))

推荐阅读