将预定义的对象传递给 Alamofire

Posted

技术标签:

【中文标题】将预定义的对象传递给 Alamofire【英文标题】:Passing predefined Object to Alamofire 【发布时间】:2020-04-19 22:51:40 【问题描述】:

我试图在 Alamofire 中传递一个对象,但没有成功。以下是我的对象

class MyRequestObject : NSObject, Codable 

var myData : MyDataType?
var simpleString : String?


MyRequestObject 是一个包含 3-4 个嵌套对象的嵌套对象,我会在某个时间点填充所有对象,然后最终到达这个 VC,在那里我将进行 API 调用。现在,当我到达最终的 VC 时,我的对象充满了数据并准备发送请求,但 Alamofire 不会接受参数中的对象。这就是我想做的事情

    let parameters = [
        "RequestID" : self.rID,
        "RequestTime" : "self.rTime",
        "RequestObject" : myRequestObject
    ]

在日志Invalid type in JSON write FOO.MyRequestObject 中收到此错误

如果我像这样在parameters 中重新创建完整的对象(只是更短的对象供参考)

        let parameters = [
        "RequestID" : self.rID,
        "RequestTime" : self.rTime,
        "RequestObject" : [
            "key" : self.SomeValue,
            "key" : self.SomeValue,
            "key" : self.SomeValue,
            "seconNestedObj"[
                "key" : self.SomeValue,
                "thirdNetedObj" : [
                    "key" : self.SomeValue,
                    "key" : self.SomeValue
                ]
            ]
        ]
    ]

它有效。但我不想在这里重新创建所有内容。有什么办法吗,否则我必须在这里做娱乐活动。

我在 android 中做过类似的事情,而且效果很好,我期待在 swift 中也有类似的事情。

谁能告诉我该怎么做?

【问题讨论】:

【参考方案1】:

如果您使用的是 Alamofire 5,则可以使用任何 Encodable 类型作为参数,因此我建议您将根参数对象设置为实际的 Encodable 类型并以这种方式构建您的请求。

【讨论】:

您能否提供一个代码 sn-p 来说明您要说的内容。我不明白。 github.com/Alamofire/Alamofire/blob/master/Documentation/…

以上是关于将预定义的对象传递给 Alamofire的主要内容,如果未能解决你的问题,请参考以下文章

如何将 JSON 对象传递给角度自定义元素

如何通过自定义 URL 将“属性列表”对象传递给 iOS 应用程序?

如何将对象上下文传递给 jQuery.ajax JSONP 回调?

.Net 将对象列表作为参数传递给 JQuery

将 numpy 对象传递给 pythonqt 包装器

如何将对象属性作为参数传递给 Razor 组件