La literal de la colección heterogénea solo se puede inferir a ''; agregar anotación de tipo explícito si esto es intencional

Tengo un parámetro de cuerpo de POST como este:

{ "id": 0, "name": "string", "contactInfo": "string", "message": "string" } 

Entonces, como estoy usando el Alamofire para publicar los parameters, estoy describiendo el dictionary del cuerpo de correos así:

 let body = ["id": userID, "name": userName, "contactInfo": contactInfo, "message": message] class func postUserFeedback(userID: Int, userName: String, contactInfo: String, message: String,completionHandler: @escaping (FeedbackResponse?) -> Void) { let body = ["id": userID, "name": userName, "contactInfo": contactInfo, "message": message] request(route: .userFeedback, body: body).responseObject { (response: DataResponse<FeedbackResponse>) in response.result.ifSuccess({ completionHandler(response.result.value) }) response.result.ifFailure { completionHandler(nil) } } } 

Pero estoy recibiendo el error como este: Captura de pantalla de error

¿Qué estoy haciendo mal en esta syntax?

Si el tipo no se puede inferir , debe anotarlo:

 let body : [String:Any] = ["id": userID, "name": userName, "contactInfo": contactInfo, "message": message] 

Debe agregar un tipo explícito [String: Any] a la variable.

 let body = ["id": userID, "name": userName, "contactInfo": contactInfo, "message": message] as [String: Any]