gpt4 book ai didi

ios - 我无法在 swift 3 中将数据从模型类传递到 TableView ?

转载 作者:行者123 更新时间:2023-11-30 12:02:15 26 4
gpt4 key购买 nike

在此,我在发布参数后从服务器响应中获取数据,在这里我需要将其显示在表格 View 上,并且应如下图所示显示0是特定的价格运输方式

enter image description here

我已经为服务器响应数据编写了模型类,这里是

struct ShippingMethod  {

let carrierCode : String
let priceInclTax : Int
let priceExclTax : Int
let available : Any
let carrierTitle : String
let baseAmount : Int
let methodTitle : String
let amount : Int
let methodCode : String
let errorMessage : Any


init(dict : [String:Any]) {

self.carrierCode = dict["carrier_code"] as! String
self.priceInclTax = dict["price_incl_tax"]! as! Int
self.priceExclTax = dict["price_excl_tax"]! as! Int
self.available = dict["available"]!
self.carrierTitle = dict["carrier_title"] as! String
self.baseAmount = dict["base_amount"]! as! Int
self.methodTitle = dict["method_title"]! as! String
self.amount = dict["amount"]! as! Int
self.methodCode = dict["method_code"] as! String
self.errorMessage = (dict["error_message"] != nil)
}
}

通过使用这个,我通过使用代码形成了这样的数组类型

  var finalDict = [String: [String]]()
var responseData = [ShippingMethod]()
do
{
let array = try JSONSerialization.jsonObject(with: data, options: []) as? [[String : Any]]
for item in array! {
self.responseData.append(ShippingMethod.init(dict: item))
}
print(self.responseData)
}
catch let error
{
print("json error:", error)
}
print(self.responseData)
for item in self.responseData {
let dict = item
let carrierTitle = dict.carrierTitle
let methodTitle = dict.methodTitle
if self.finalDict[carrierTitle] == nil {
self.finalDict[carrierTitle] = [String]()
}
self.finalDict[carrierTitle]!.append(methodTitle)
}
print(self.finalDict)

finalDict 的输出为 ["Flat Rate": ["Fixed"], "Best Way": ["Table Rate"]] 运营商标题键值对应显示为部分标题,并且是统一费率方法标题键值对应显示为部分中的行>已修复但问题是我还需要amount键值对来对应相应的方法标题有人可以帮助我如何得到这个吗?

最佳答案

为什么不创建另一个结构体来显示行数据:

struct CarrierInfo {
let name:String
let amount:Int
}

finalDict 更改为

var finalDict = [String: [CarrierInfo]]()

创建CarrierInfo实例并将其设置在finalDict中

for item in self.responseData {
let dict = item
let carrierTitle = dict.carrierTitle
let methodTitle = dict.methodTitle
let amount = dict.amount
if self.finalDict[carrierTitle] == nil {
self.finalDict[carrierTitle] = [CarrierInfo]()
}
self.finalDict[carrierTitle]!.append(CarrierInfo(name: carrierTitle, amount: amount))
}

同样,您可以进行其他所需的更改。这会将您的行显示数据整齐地包装在一个结构中。

PS:我没有在 IDE 中测试代码,因此它可能包含拼写错误。

关于ios - 我无法在 swift 3 中将数据从模型类传递到 TableView ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47068557/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com