用字典填充数组

时间:2018-10-01 08:03:11

标签: ios arrays swift dictionary nested

我有一个类似下面的数组,其中包含一个名为“ OrderDetails”的数组,我认为它是字典而不是数组(我不确定该怎么称呼它。
在另一个vc中,我必须创建OrderDetails,然后将其放在dataa中。 在我必须创建OrderDetails的另一个VC中,我有一个表视图,这意味着表的数据(其中一些)应设置为数组。有人可以帮助我该如何制作该阵列?

 let dataa = [            "Id":0,
                                 "CustomrId": 111,
                                 "PriceVariableId": item[1].priceVariableIdCore,
                                 "PaymentTypeId":item[1].paymentVariableIdCore,
                                 "RefCo":item[1].refcoCore,
                                 "OrderNo":1122,
                                 "ReciverId":0,
                                 "DlvProvinceId":UserDefaults.standard.string(forKey: constantAddress.stateId),
                                 "DlvCityId": UserDefaults.standard.string(forKey: constantAddress.cityId),
                                 "DlvAddress": UserDefaults.standard.string(forKey: constantAddress.addressLine),
                                 "DlvZip": UserDefaults.standard.string(forKey: constantAddress.postalCode),
                                 "DlvTel": UserDefaults.standard.string(forKey: constantAddress.telephone),
                                 "DlvMobile": UserDefaults.standard.string(forKey: constantAddress.mobile),
                                 "TtIsSingle": TAK,
                                 "TtIsDouble": JOFT,
                                 "TtIsTrailer":TREILI,
                                 "Description":EntTozihat.text,

                                 "OrderDetails":["OrderDetailId":0 ,
                                                 "Qty":0,
                                                 "UnitPrice":600]

                                 ]

"OrderDetails":[("OrderDetailId":0 ,"Qty":0,"UnitPrice":600),(),()]

更新

我正在创建如下的OrderDetails:

    for _ in 0...item.count {

            let dict = ["Id": 0,
                        "Qty":item[indexPath.row].quantityCore ,
                        "UnitPrice":item[indexPath.row].feeCore ,
                        "GoodId":item[indexPath.row].goodIdCore,] as [String : Any]
            listArray.append(dict)

        }
        print("JACK=  \(listArray)")

我必须在这里问题!!! 1)我正在将此权利与带有“ dequeueReusableCell”的“ cellForRowAt”一起使用,这意味着与我拥有的ro一样多,它将返回如下数据:

  

JACK = [[“ Id”:0,“ GoodId”:0,“ UnitPrice”:0.0,“ Qty”:0.0],[“ Id”:0,“ GoodId”:0,“ UnitPrice”:0.0 ,“ Qty”:0.0],[“ Id”:0,“ GoodId”:0,“ UnitPrice”:0.0,“ Qty”:0.0],[“ Id”:0,“ GoodId”:0,“ UnitPrice” :0.0,“数量”:0.0],[“ ID”:0,“ GoodId”:0,“单价”:0.0,“数量”:0.0],[“ Id”:0,“ GoodId”:0,“ UnitPrice“:0.0,” Qty“:0.0],[” Id“:0,” GoodId“:0,” UnitPrice“:0.0,” Qty“:0.0],[” Id“:0,” GoodId“:0 ,“ UnitPrice”:0.0,“ Qty”:0.0],[“ Id”:0,“ GoodId”:0,“ UnitPrice”:0.0,“ Qty”:0.0],[“ Id”:0,“ GoodId” :0,“ UnitPrice”:0.0,“数量”:0.0],[“ Id”:0,“ GoodId”:0,“ UnitPrice”:0.0,“ Qty”:0.0],[“ Id”:0,“ GoodId“:0,” UnitPrice“:0.0,”数量“:0.0],[” Id“:0,” GoodId“:0,” UnitPrice“:0.0,” Qty“:0.0],[” Id“:0 ,“ GoodId”:0,“ UnitPrice”:0.0,“ Qty”:0.0],[“ Id”:0,“ GoodId”:0,“ UnitPrice”:0.0,“ Qty”:0.0],[“ Id” :0,“ GoodId”:0,“ UnitPrice”:0.0,“数量”:0.0],[“ Id”:0,“ GoodId”:0,“ UnitPrice”:0.0,“数量”:0.0],[“ Id“:0,” GoodId“:0,” UnitPrice“:0.0,” Qty“:0.0],[” Id“:0,” GoodId“ “:0,” UnitPrice“:0.0,”数量“:0.0],[” Id“:0,” GoodId“:0,” UnitPrice“:0.0,” Qty“:0.0],[” Id“:0, “ GoodId”:0,“ UnitPrice”:0.0,“数量”:0.0],[“ Id”:0,“ GoodId”:0,“ UnitPrice”:0.0,“ Qty”:0.0],[“ Id”: 0,“ GoodId”:0,“ UnitPrice”:0.0,“数量”:0.0],[“ Id”:0,“ GoodId”:0,“ UnitPrice”:0.0,“数量”:0.0],[“ Id “:0,” GoodId“:0,” UnitPrice“:0.0,” Qty“:0.0]]

您在打印4倍以上看到的print(),因为我有4行!

另一个问题2)是,我不知道为什么它在每个“ JACK =“

中都返回那么多数据

首先:我需要知道如何在“ cellForRowAt”之外使用代码 第二:为什么我在“杰克”中得到这么多数据

1 个答案:

答案 0 :(得分:1)

这样做:

 let orderDetails = dataa["OrderDetails"]!

如果不确定该条目是否存在,可以安全地将其打开:

if let orderDetails = dataa["OrderDetails"] {
    //use orderDetails
}

或者如果您在其余的范围内需要它:

guard let orderDetails = dataa["OrderDetails"] else {
    fatalError("Couldn't unwrap the order details")
}
//use orderDetails

那样orderDetails就是类型[String: Int]的字典。