Cast from 'Result' to unrelated type 'NSArray' always fails The following code was working ok on XCode 6/Swift 1, but gives me an error on XCode 7/Swift 2
Alamofire.request(.POST, "\(self.REQ_URL)", parameters: parameters).validate(contentType: ["application/json"]).responseJSON(options: [], completionHandler: { (req, resp, data) -> Void in

let data_ar = data as! NSArray //here I get the error 

})

The error I get is

Cast from 'Result' to unrelated type 'NSArray' always fails

How am I supposed to use the returned JSON?

It seems the syntax has changed, and the following works 
Alamofire.request(.POST, "\(self.REQ_URL)", parameters: parameters)
    .responseJSON { request, response, result in
switch result {
case .Success(let data):
let data_ar = data as! NSArray

case .Failure(let data, let error):
print("Request failed with error: \(error)")


}
    }


just in case of you are using swiftyjson for xcode 7 branch, 
    Alamofire.request(.POST, "\(self.REQ_URL)", parameters: parameters)
.responseJSON { request, response, result in
    switch result {
    case .Success(let data):
let json = JSON(data)
let something = json["aaa"].string
....

    case .Failure(let data, let error):
print("Request failed with error: \(error)")