La respuesta de Alamofire siempre está con el código de estado 200 incluso cuando se devuelve explícitamente 304

Estoy tratando de crear algo de caching en mi aplicación. Este es el flujo: el usuario ingresa a la aplicación, la aplicación comtesting que el clima es cualquier cambio desde su última actualización, si es así, el server devuelve 200 y la página se actualiza. De lo contrario, el server devuelve 304 y no pasa nada. Estoy usando alamofire en la aplicación ios e intenté cualquier configuration pero nada ayuda. El verdadero problema extraño es que incluso cuando el server devuelve explícitamente el código de estado 304, mi aplicación todavía tiene 200. Este es el código:

if Reachability.isConnectedToNetwork() { let urlreq = NSMutableURLRequest(URL: NSURL(string: API.feedURL())!,cachePolicy: NSURLRequestCachePolicy.ReloadIgnoringLocalCacheData , timeoutInterval: 5000) Alamofire.request(.GET, urlreq, parameters: ["category_name":category],encoding: ParameterEncoding.URL, headers: API.getHeaders()) .validate(statusCode: 200..<500) .responseJSON { request, response, result in switch result { case .Success(let data): let statusCode = response!.statusCode as Int! if statusCode == 304 { completionHandler(didModified: false, battlesArray: []) } else if statusCode == 200 { let json = JSON(data) var battlesArray : [Battle] = [] for (_,subJson):(String, JSON) in json["battles"] { battlesArray.append(Battle(json: subJson)) } completionHandler(didModified: true, battlesArray: battlesArray) } case .Failure(_, let error): print ("error with conneciton:\(error)") } SVProgressHUD.dismiss()} 

¡Estoy tratando de encontrar una manera de resolverlo durante más de una semana! No debería ser tan complicado Esperemos ayuda chicos