2015-12-14 27 views
8

In AFNetworking 3.0 alcune cose sono state modificate. Fondamentalmente, non ci sono più operazioni, invece session data tasks. Come posso ottenere il codice di stato da NSURLSessionDataTask?Come ottenere il codice di stato da NSURLSessionDataTask?

Questo è il mio blocco:

GET("users/check_email", parameters: parameters, progress: nil, success: { sessionDataTask, response in 

     // here I need status code of response 

     }) { sessionDataTask, error in 

      completionBlock(nil, NSError(sessionDataTask: sessionDataTask)) 
    } 

risposta

0

NSURLSessionDataTask ha response proprietà, che sarà popolato con un oggetto di NSHTTPURLResponse classe, che ha statusCode proprietà.

29

Il NSURLSessionDataTask ha una proprietà response che può essere gettato a una NSHTTPURLResponse per ottenere il codice di stato:

Swift Esempio:

if let urlResponse = sessionDataTask.response as? NSHTTPURLResponse { 
    let status = urlResponse.statusCode 
} 

Objective-C Esempio:

NSInteger statusCode = 0; 

if ([sessionDataTask.response isKindOfClass:[NSHTTPURLResponse class]]) { 
    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)sessionDataTask.response; 
    statusCode = httpResponse.statusCode; 
} 
+0

completamento già la risposta ha superato –

+0

non è la stessa risposta, questa è la risposta dal server, la risposta all'interno di 'sessionDataTask' è r esponse da http (intestazioni e così via) –

+0

Grazie per la risposta! Meglio chiamare 'isKindOfClass' su' sessionDataTask.response'. Solo se 'SÌ' lanciato e ottieni' statusCode'. –