使用ObjectMapper传递参数的问题

时间:2018-02-08 11:12:44

标签: ios arrays swift objectmapper

enter image description here

如图所示,我需要发送参数结构disctonary<array<Dictionary>>

通过按钮添加参数来调用API的代码是选择。但是如果我传递了错误的参数,则会出现错误

func serviceCallStore() {
    let objRegiStep6POSTModel : RegiStep6ShippingRequest<ShippingArrayRequest> = RegiStep6ShippingRequest()
    objRegiStep6POSTModel.ShopId = "\(Preference.GetInteger(key: UserDefaultsKey.ShopID))"
    // var objShippingID : [ShippingArrayRequest] = [ShippingArrayRequest]()
    if self.btnDoorDelivery.isSelected {
        let shippingModel = ShippingArrayRequest()
        shippingModel.ShippingID = 1
        objRegiStep6POSTModel.ShippingArrayRequest?.append(shippingModel)
    }
    if self.btnPickupInStore.isSelected{
        let shippingModel = ShippingArrayRequest()
        shippingModel.ShippingID = 2
        objRegiStep6POSTModel.ShippingArrayRequest?.append(shippingModel)

    }
    // objRegiStep6POSTModel.ShippingArrayRequest = objShippingID

    let securitydataprovider: SecurityDataProvider = SecurityDataProvider()
    securitydataprovider.RegistrationStep7Register(regi6Storemodel: objRegiStep6POSTModel,IsLoader: true, viewController: self) { (response, IsSuccess) -> Void in
        if IsSuccess! {

            if response?.IsStatus == true {
                appDelegate.window?.rootViewController?.view.makeToast(message: "Data send sucessfully")
            } else {
                appDelegate.window?.rootViewController?.view.makeToast(message: AppMessage.getErrorInResponse)
            }
        } else {
            appDelegate.window?.rootViewController?.view.makeToast(message: AppMessage.getErrorInResponse)
        }
    }


}

以下结构,我用来传递参数

class RegiStep6ShippingRequest<T:Mappable>: Mappable {

    lazy var ShopId                 : String? = ""
    lazy var ShippingArrayRequest   : [T]? = []

    init() {

    }

    required init?(map: Map) {

    }

    func mapping(map: Map) {
        ShippingArrayRequest        <- map["Shipping"]
        ShopId                      <- map["ShopId"]
    }
}


class ShippingArrayRequest : Mappable {

    lazy var ShippingID: Int? = 0

    required init() {
    }

    required init?(map: Map) {
    }

    func mapping(map: Map) {
        ShippingID          <- map["ShippingID"]
    }
}

添加

时获取响应
Request:  ["Shipping": [["ShippingID": 1], ["ShippingID": 2], ["ShippingID": 1], ["ShippingID": 2]], "ShopId": "286"]
 Response :  Optional({
IsStatus = 1;
response =     {
    Id = 286;
    Message = Succes;
};
})

但它仅添加第一个对象。这是添加的响应

http://13.127.1.73:81/Shop/GetStep7?ShopId=286
URL:  http://13.127.1.73:81/Shop/GetStep7?ShopId=286
Request:  [:]
Response :  Optional({
Data =     (
            {
        MethodName = "Delivery To Address";
        ShippingId = 689;
        ShopId = 286;
    }
);
IsStatus = 1;
})

0 个答案:

没有答案