Передача предопределенного объекта в Alamofire - PullRequest
0 голосов
/ 20 апреля 2020

Я пытаюсь передать Объект в Аламофире, но безуспешно. Ниже приводится мой объект

class MyRequestObject : NSObject, Codable {

var myData : MyDataType?
var simpleString : String?

}

MyRequestObject - это вложенный объект с 3-4 вложенными объектами, и я заполняю все объекты в какой-то момент, прежде чем, наконец, доберусь до этого V C, где я сделаю API Call. Теперь, когда я доберусь до финального V C, у меня есть Объект, заполненный данными и готовый к отправке с Запросом, но 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 Ответ

0 голосов
/ 20 апреля 2020

Если вы используете Alamofire 5, вы можете использовать любой тип Encodable в качестве параметров, поэтому я предлагаю вам сделать объект параметров root фактическим Encodable типом и строить свои запросы таким образом.

...