Fehler bei Parameter hinzufügen, um die Anfrage in Alamofire
Ich bin mit der neuen Netz-Bibliothek namens Alamofire zu tun, eine POST-Anforderung in Swift.
Alamofire können Sie den Aufbau der Parameter-format separat und fügen Sie es hinzu. Hier ist mein Wunsch-format.
{
"DeviceCredentials": {
"UniqueId": "sample string 1"
},
"Personalnumber": "sample string 1"
}
Und unten ist, was ich kam mit.
let parameters = [
"DeviceCredentials": ["UniqueId": uniqueID],
"Personalnumber": personalNumber
]
Beide uniqueID
und personalNumber
sind String geben. Ich bekomme keine Fehler an dieser Stelle, aber wenn ich versuche, um es zu ersuchen,
Alamofire.request(.POST, "https://www.example.com/api/", parameters: parameters, encoding: .JSON(options: nil)).responseJSON { (request, response, JSON, error) -> Void in
println(JSON!)
}
Bekomme ich diesen Fehler bei der parameters
parameter, 'String' ist nicht gleich 'NSObject'.
Gibt es etwas falsch mit meinem format oder ist das ein bug?
Dank
Bearbeiten: ich fand, dass das ersetzen von uniqueID
mit einem integer so (["UniqueId", 1]
) entledigt sich der Fehler. Aber ich habe versucht, ein anderes format, wie ein test die ich unten aufgelistet und es kompiliert ohne Fehler!
let paras = [
"DeviceCredentials": ["UniqueId": uniqueID],
"UserCredentials": ["Personalnumber": personalNumber]
]
Du musst angemeldet sein, um einen Kommentar abzugeben.
In deinem ersten Beispiel "Parameter" Sie haben gemischte Typen im Wörterbuch und Swift offenbar fehl, um herauszufinden, den abgeleiteten Typ für ihn. Sie können dieses Problem beheben mit einem Typ-Anmerkung:
In Ihrem zweiten Wörterbuch, "ABS", alle Typen sind gleich und Typ-Inferenz erfolgreich.