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)
Спасибо
Ответы
Ответ 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-запроса).