Meine App verwendet derzeit AWS API Gateway und Alamofire, um auf verschiedene Lambda-Funktionen zuzugreifen, die als mein Backend fungieren.Senden eines Arrays als Parameter in einer Alamofire POST-Anforderung
Ich habe die Notwendigkeit, ein Array als einer des Parameters zu einem dieser API Endpunkten zu senden, für die ich den folgenden Code verwenden:
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 ist nicht wegen des Array arbeiten wird nicht durch die API erkannt zu werden, aber wenn ich eine „statische“ Array
let interests = ["a", "b", "c"]
Alles funktioniert schaffen, wie es soll.
Wie kann ich diese Situation beheben, da das Array der Interessen von einem anderen Teil des Codes stammt, wie soll ich es deklarieren oder konstruieren?
Ein Freund es geschafft, dies in Android zu erreichen ein
ArrayList<String>
EDIT:
die Parameter Array Drucken zeigt mir dies:
["name":test, "interests": <_TtCs21_SwiftDeferredNSArray 0x7b05ac00>(103, 651, 42), "lastName": test]
Was Rückkehr interests.id ist Rückkehr nach! ? – Lion
Ich denke, die "Interessen" sind immer leer und der Code, der Interessen berechnet, ergibt für mich keinen Sinn. Sie haben ein leeres Array deklariert, und Sie versuchen, darüber zu mappen !. Kannst du diesen Teil klären? – Shripada
Bearbeitete die Frage, machte ich Fehler beim Kopieren des Codes. Nach der Map ist das Array nicht leer und ist ein [(String)] mit 3 Werten – ur3k