Sende ein Array als Parameter in einer Alamofire POST Anfrage
Meine App verwendet derzeit AWS API Gateway und Alamofire, um auf verschiedene Lambda-Funktionen zuzugreifen, die als mein Backend fungieren.
Ich muss ein Array als einen der Parameter an einen dieser API-Endpunkte senden. Dafür verwende ich den folgenden Code:
var interests : [String]
interests = globalInterests.map({ (interest) -> String in
return interest.id!
})
// Parameters needed by the API
let parameters: [String: AnyObject] = [
"name" : name,
"lastName" : lastName,
"interests" : interests
]
// Sends POST request to the AWS API
Alamofire.request(.POST, url, parameters: parameters, encoding: .JSON).responseJSON { response in
// Process Response
switch response.result {
case .Success:
print("Sucess")
case .Failure(let error):
print(error)
}
}
Aber das funktioniert nicht, weil das Array von der API nicht erkannt wird, aber wenn ich ein "statisches" Array erstelle
let interests = ["a", "b", "c"]
Alles funktioniert so wie es soll.
Wie kann ich diese Situation beheben, wenn das Array von Interessen aus einem anderen Teil des Codes stammt? Wie soll ich es deklarieren oder konstruieren?
Ein Freund hat dies in Android mit einem @ erreich
ArrayList<String>
BEARBEITEN
Drucken Sie das Parameter-Array, um Folgendes zu sehen:
["name":test, "interests": <_TtCs21_SwiftDeferredNSArray 0x7b05ac00>( 103, 651, 42), "lastName": test]