Senden Sie ein array als parameter in einer Alamofire POST-Anforderung

Meine app ist aktuell für die Nutzung von AWS-API-Gateway und Alamofire Zugriff auf verschiedene lambda-Funktionen, die handeln, als mein backend.

Ich das Bedürfnis haben, senden Sie ein array als Parameter an eine von diesen API-Endpunkte, dafür bin ich mit dem 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, dass nicht funktioniert, weil das array nicht erkannt wird von der API, aber wenn ich erstelle einen "statischen" array

let interests = ["a", "b", "c"] 

Alles funktioniert wie es soll.

Wie kann ich dieses Problem beheben situation gegeben, dass das array der Interessen kommen aus einem anderen Teil des Codes, wie soll ich es erklären oder konstruieren Sie Sie?

Einem Freund gelang es, dies in Android mit einem

ArrayList<String>

EDIT:

Druck-Parameter array zeigt mir dies:

["name":test, "interests": <_TtCs21_SwiftDeferredNSArray 0x7b05ac00>( 103, 651, 42), "lastName": test]
Was ist die Rückgabe durch Rücksendung Interessen.id! ?
Ich denke, die 'Interessen' ist immer leer und der code berechnet, dass Interessen nicht die für mich Sinn machen. Sie haben ein leeres array deklariert, und Sie versuchen, die Karte über es!. Können Sie das klären, dass ein Teil?
Bearbeitet die Frage, die ich gemacht ich Fehler beim kopieren des code. Nach der Karte der array ist nicht leer und ist ein [(String)] mit 3-Werte
Ein update für das problem ?
Verwenden Sie [String: Beliebig] statt [String: AnyObject]

InformationsquelleAutor ur3k | 2016-04-12

Schreibe einen Kommentar