ios - 在 swift 3 中将多个 NSMutableArray 数据追加到另一个 NSMutableArray

标签 ios swift swift3

比方说,有 shipping需要发送nsdictionary值到服务器,有items NSMutableArray 里面 shipping并且,再次有sub-items NSMutableArray 里面 items .

这就是我这样编码的原因:

    for cake in cakes {
        for item in cakeItemsOpt {
            let optionalItem = [
                "item_req_mod_p_id": item.cakeItemModId,
                "l_req_mod_p_id": item.cakeModId,
                "mod_id": item.cakeModId,
                "mod_qty": item.cakeQty
            ]
            itemsOptional.add(optionalItem)
        }

        for item in cakeItemsReq {
            let requiredItem = [
                "item_req_mod_p_id": item.cakeItemModId,
                "l_req_mod_p_id": item.cakeModId,
                "mod_id": item.cakeModId,
                "mod_qty": "1"
            ]
            itemsRequired.add(requiredItem)
        }

        let cakeParam: NSDictionary = [
            "id": cake.cakeId,
            "qty": cake.cakeQty,
            "type": cake.cakeType,
            "name": cake.cakeName,
            "image": cake.cakeImage,
            "req_modifiers": itemsRequired,
            "opt_modifiers": itemsOptional
        ]
        items.add(cakeParam)
    }

    let param: NSDictionary = [
        "user_id": user_id,
        "token": token,
        "delivery": "del",
        "delivery_remark": delivery_remark,
        "delivery_date": delivery_date,
        "delivery_time": delivery_time,
        "delivery_charge": delivery_charge,
        "item": items,
        "payment_method_id": payment_id,
    ] as [String : Any]

param是发送到服务器的主要对象。

但是结果并不是我所期望的,

["delivery_remark": "heavy", "payment_method_id": "4", "delivery": "del", "token": "0l8BwedwkZQltcFYFhCpicQZeQOhikyYLxa8R3u2", "item": <__NSArrayM 0x60800044ea90>(
{
    id = 11;
    image = "";
    name = "Red Velvet 16cm";
    "opt_modifiers" =     (
                {
            "item_req_mod_p_id" = 49;
            "l_req_mod_p_id" = 3;
            "mod_id" = 3;
            "mod_qty" = "";
        },
                {
            "item_req_mod_p_id" = 49;
            "l_req_mod_p_id" = 4;
            "mod_id" = 4;
            "mod_qty" = "";
        }
    );
    qty = 2;
    "req_modifiers" =     (
                {
            "item_req_mod_p_id" = 55;
            "l_req_mod_p_id" = 8;
            "mod_id" = 8;
            "mod_qty" = 1;
        },
                {
            "item_req_mod_p_id" = 56;
            "l_req_mod_p_id" = 3;
            "mod_id" = 3;
            "mod_qty" = 1;
        }
    );
    "run_no" = "6260-1c86";
    "small_candles" = "";
    "sponge_color_id" = "";
    "theme_id" = "";
    "theme_name" = "";
    type = item;
    "word_color_id" = "";
}
)
, "delivery_charge": "15.00", "user_id": "21", "delivery_time": "3", "delivery_date": "2017-02-27"]

<__NSArrayM 0x60800044ea90>包含在我的对象中。请让我知道如何纠正我的编码以获得正确的结果。谢谢。

最佳答案

那么我猜你想要类似的东西

    let data: [String : [String : [String : [String]]]]
    data = [
        "shipping" : ["items" : ["subitemKey" : ["subitemArray"]]]
    ]

因此,您有一个字典,其中包含键“shipping”的字典,其中包含键“items”的字典,其中包含不同子项目键的数组

关于ios - 在 swift 3 中将多个 NSMutableArray 数据追加到另一个 NSMutableArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42559679/

相关文章:

ios - 刷新时如何更改 UIRefreshControl 的颜色?

swift - 为什么在传递给具有可选类型的函数参数时强制使用 nil 的 uwrapped 类型不会崩溃?

ios - UIPageViewController - 以编程方式更改页面在 iPhone 4s/5/5s 上不起作用

ios - 如何在 Alamofire 4 中下载文件并保存到 Documents 目录?

image - Swift 3 中的 Firebase 存储图像持久性

ios - 将系统日期快速放入文本字​​段

ios - iAd 引起约束冲突

objective-c - 将应用程序配置保存在 plist 文件中的最佳实践

ios - 在 ViewWillDisappear 上插入数据库

ios - 设置 UIView 的角(iOS)