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