заполнение массива словарем - PullRequest
0 голосов
/ 01 октября 2018

У меня есть массив, как показано ниже, который содержит массив с именем "OrderDetails", то есть, я думаю, словарь, а не массив (я не уверен, как его назвать.
в другом vc, я должен создать OrderDetailsи затем поместите это здесь в dataa. В другом VC, который я должен создать OrderDetails, у меня есть представление таблицы, что означает, что данные таблицы (некоторые из них) должны быть установлены в массив. Может кто-нибудь помочь мне, как следуетЯ делаю этот массив?

 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),(),()]

update :

Я создаю 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) Я использую это право в "cellForRowAt" с "dequeueReusableCell", что означает, что столько 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, "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," 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, «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, "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," 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," Qty ": 0.0], [" Id ": 0," GoodId ": 0," UnitPrice ": 0.0," Qty ": 0.0]]

print (), который вы видите выше, печатает 4 раза, потому что у меня 4 строки !!!

другая проблема 2) в том, что я не знаю, почему он возвращает столько данных в каждом "JACK ="

во-первых: мне нужно знать, как использовать код вне" cellForRowAt ", во-вторых: почему я получаю такие большие данные в" JACK "

1 Ответ

0 голосов
/ 01 октября 2018

Сделайте это следующим образом:

 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].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...