【问题标题】:Extra argument 'method' in call of Alamofire调用 Alamofire 时的额外参数“方法”
【发布时间】:2018-03-13 11:47:33
【问题描述】:

我已经搜索过这个问题,有很多可用的答案,但没有一个能解决。我将参数定义为:

let parameters = [
                "name": username,
                "mobile": "",
                "email": email,
                "password": "",
                "blood_donor": "0",
                "registration_id": defaults.string(forKey: "FCMToken"),
                "platform": platform,
                "appID": "3"
            ]

然后当我发送请求时:

Alamofire.request(url, method: .post, parameters: parameters, encoding: URLEncoding(), headers: headers).responseJSON { response in

所以我收到了parameters 的警告

表达式从 'String?' 隐式强制到任何

如果我将! 放在参数旁边,我开始收到此错误:

调用中的额外参数“方法”

我写这一切的函数是: func sendLoginCall(username: String, email: String, platform: String)。我尝试将URLEncoding() 替换为JSONEncoding.default,但没有成功。

我称之为这样的方法:

if let userName = data["name"], let email = data["email"] {
                            self.sendLoginCall(username: userName as! String, email: email as! String, platform: "fb")
                        }

【问题讨论】:

  • 你能添加整个sendLoginCall函数吗?

标签: ios swift3 parameters alamofire


【解决方案1】:

parameters 类型更改为[String : Any],如下所示:

let parameters = [
                "name": username,
                "mobile": "",
                "email": email,
                "password": "",
                "blood_donor": "0",
                "registration_id": defaults.string(forKey: "FCMToken"),
                "platform": platform,
                "appID": "3"
            ] as [String : Any]

没有必要:从参数参数中删除encoding: URLEncoding(),它可以在没有编码的情况下工作。

这是 Alamofire 开发人员对同一问题和解决方案的讨论:https://github.com/Alamofire/Alamofire/issues?utf8=%E2%9C%93&q=extra%20argument

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-03
    • 1970-01-01
    • 2018-06-03
    • 2019-02-23
    • 1970-01-01
    • 2017-06-26
    • 1970-01-01
    • 2023-03-21
    相关资源
    最近更新 更多