2017-10-02 5 views
2

Ich habe nach diesem Problem gesucht und es gibt viele Antworten zur Verfügung, aber keine lösen. Ich habe definierten Parameter wie:Zusätzliches Argument 'Methode' im Aufruf von Alamofire

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

Und danach, wenn ich die Anfrage senden:

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

So bekomme ich eine Warnung auf parameters

Expression implicitly coerced from 'String?' to Any

und wenn ich setzen ! nächste zu den Parametern fange ich an, diesen Fehler zu erhalten:

Extra argument 'method' in call

Die Funktion, in der ich dies alles geschrieben habe ist: func sendLoginCall(username: String, email: String, platform: String). Ich habe versucht, URLEncoding() zu ersetzen JSONEncoding.default es hat nicht funktioniert.

Ich rufe diese Methode ist wie folgt:

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

Können Sie die 'sendLoginCall' Funktion hinzufügen? – the4kman

Antwort

2

ändern parameters Typ [String : Any] wie folgt:

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

Nicht erforderlich: Entfernen encoding: URLEncoding() aus param Argumente, kann es ohne Codierung arbeiten .

Hier Diskussion über gleiche Problem und die Auflösung von Alamofire Entwickler: https://github.com/Alamofire/Alamofire/issues?utf8=%E2%9C%93&q=extra%20argument

Verwandte Themen