2017-10-02 10 views
2

私はこの問題を検索しましたが、利用できる答えはたくさんありますが、解決できないものがあります。私は、要求を送信するときAlamofireを呼び出す際の余分な引数 'method'

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

Expression implicitly coerced from 'String?' to Any

に警告を取得し、私は次の!を置く場合パラメータに私はこのエラーが発生し始めます:

Extra argument 'method' in call

私がこれを書いた関数は、 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") 
         } 
+0

あなたは全体 'sendLoginCall'機能を追加できますか? – the4kman

答えて

2

の変更以下のように[String : Any]からparametersタイプ:

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

関連する問題