我正在使用NSURLRequest在SWIFT中构建休息查询
var request : NSURLRequest = NSURLRequest(URL: url)
var connection : NSURLConnection = NSURLConnection(request: request, delegate: self, startImmediately: false)!
connection.start()
Run Code Online (Sandbox Code Playgroud)
我的问题是如何从返回的响应中获取响应代码:
func connection(didReceiveResponse: NSURLConnection!, didReceiveResponse response: NSURLResponse!) {
//...
}
Run Code Online (Sandbox Code Playgroud)
根据Apple: NSHTTPURLResponse它是一个NSURLResponse具有状态代码的子类,但我不确定如何转发我的响应对象,以便我可以看到响应代码.
这似乎没有削减它:
println((NSHTTPURLResponse)response.statusCode)
Run Code Online (Sandbox Code Playgroud)
谢谢
Mar*_*n R 16
使用as?带有可选绑定(if let)的可选cast ():
func connection(didReceiveResponse: NSURLConnection!, didReceiveResponse response: NSURLResponse!) {
if let httpResponse = response as? NSHTTPURLResponse {
println(httpResponse.statusCode)
} else {
assertionFailure("unexpected response")
}
}
Run Code Online (Sandbox Code Playgroud)
或作为一个班轮
let statusCode = (response as? NSHTTPURLResponse)?.statusCode ?? -1
Run Code Online (Sandbox Code Playgroud)
-1如果响应不是HTTP响应(对于HTTP请求不应该发生),则将状态代码设置为的位置.