Daniel Que Daniel Que - 1 year ago 275
iOS Question

Alamofire 'invalid type in JSON write' error after upgrading

The following code was working with Alamofire 3.0:

let headers = [
"content-type": "application/json",
"cache-control": "no-cache",
let parameters = [
"access_token": token.tokenString,
"client_id": bundleID,

Alamofire.request(.POST, url, headers: headers, parameters: parameters, encoding: .JSON).responseJSON { response in
// ...

I changed the request after updating to Alamofire 4.0/Swift3/XCode 8:

Alamofire.request(url, method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: headers).responseJSON { response in
// ...

And I get the error

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid type in JSON write (_SwiftValue)'

I've been looking for a solution to this problem but can't find anything relevant.

Answer Source

There is definitely something wrong with your parameters. Make sure that both token.tokenString and bundleID are Strings.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download