Подтвердить что ты не робот

Swift - down down NSURLResponse для ответа NSHTTPURLResponse, чтобы получить код ответа

Я строю запросы на отдых в SWIFT, используя NSURLRequest

var request : NSURLRequest = NSURLRequest(URL: url)

var connection : NSURLConnection = NSURLConnection(request: request, delegate: self, startImmediately: false)!
connection.start()

Мой вопрос: как мне получить код ответа из возвращаемого ответа:

    func connection(didReceiveResponse: NSURLConnection!, didReceiveResponse response: NSURLResponse!) {
//...
}

В соответствии с Apple: NSHTTPURLResponse, который является подклассом NSURLResponse, имеет код состояния, но я не уверен, как скрыть мой объект ответа, чтобы я мог видеть код ответа.

Это не похоже на его сокращение:

println((NSHTTPURLResponse)response.statusCode)

Спасибо

4b9b3361

Ответ 1

Используйте необязательный листинг (as?) с необязательной привязкой (if let):

func connection(didReceiveResponse: NSURLConnection!, didReceiveResponse response: NSURLResponse!) {
    if let httpResponse = response as? NSHTTPURLResponse {
        println(httpResponse.statusCode)
    } else {
        assertionFailure("unexpected response")
    }
}

или как однострочный

let statusCode = (response as? NSHTTPURLResponse)?.statusCode ?? -1

где код состояния будет установлен в -1, если ответ не является ответом HTTP (что не должно происходить для HTTP-запроса).