在Alamofire的召唤中额外论证’方法’
我已经搜索过这个问题,但有很多答案可供使用,但没有一个可以解决。 我已经将参数定义为:
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)
是: 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") }
将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]
没有必要:从param参数中删除encoding: URLEncoding()
,它可以在没有编码的情况下工作。
以下是Alamofire开发人员对同一问题和解决方案的讨论: https : //github.com/Alamofire/Alamofire/issues? utf8 =% E2%9C%93 & q = extra%20argument