Я пытаюсь вернуть переменную statusCode, которая должна принимать значение свойства statusCode NSHTTPURLResponse, однако я получаю нуль, даже когда я проверяю, и я вижу, что данные успешно вывешенный. Он возвращает 0, который инициализировал переменную ... как мне это сделать? Благодарю.Возвращение statusCode из NSHTTPURLResponse в переменной
var statusCode = 0
let queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
dispatch_async(queue) {
let request = NSMutableURLRequest(URL: NSURL(string: escapedUrl!)!)
request.HTTPMethod = "POST"
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
data, response, error in
if error != nil {
statusCode = 0
} else if let httpResponse = response as? NSHTTPURLResponse {
if httpResponse.statusCode == 200 {
statusCode = httpResponse.statusCode
} else {
statusCode = 0
}
}
}
task.resume()
}
return statusCode
}
Вы вызываете WebService асинхронно, поэтому, когда вы вернетесь StatusCode как таким образом вы не получите результат назад с сервера. –
Я действительно хочу, чтобы он был асинхронным, так как я не хочу, чтобы приложение зависало. Не удается ли достичь этого с помощью этого метода? – Rasmus
Да, вы можете. Пожалуйста, проверьте мой ответ –