Swift – 将NSURLResponse转换为NSHTTPURLResponse以获得响应代码
我正在使用NSURLRequest在SWIFT中构build其余的查询
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!) { //... }
根据苹果: NSHTTPURLResponse
这是NSHTTPURLResponse
的子类有一个状态码,但我不知道如何NSURLResponse
我的响应对象,所以我可以看到响应代码。
这似乎并没有削减它:
println((NSHTTPURLResponse)response.statusCode)
谢谢
使用可选的强制转换( as?
)与可选的绑定( if let
):
func connection(didReceiveResponse: NSURLConnection!, didReceiveResponse response: NSURLResponse!) { if let httpResponse = response as? NSHTTPURLResponse { println(httpResponse.statusCode) } else { assertionFailure("unexpected response") } }
或作为一个class轮
let statusCode = (response as? NSHTTPURLResponse)?.statusCode ?? -1
如果响应不是HTTP响应(对于HTTP请求不应该发生),状态码将被设置为-1
。