Swift NSURLConnection sendSynchronousRequest
在目标C中,可以使用以下语法:Swift NSURLConnection sendSynchronousRequest,swift,Swift,在目标C中,可以使用以下语法: NSHTTPURLResponse *response = nil; NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil]; if ([response statusCode] == 404) { } 现在在Swift中,我使用了: var response : AutoreleasingUns
NSHTTPURLResponse *response = nil;
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];
if ([response statusCode] == 404)
{
}
现在在Swift中,我使用了:
var response : AutoreleasingUnsafeMutablePointer<NSURLResponse?> = nil
let urlData = NSURLConnection.sendSynchronousRequest(request, returningResponse: &response, error: err)
var响应:autoreleasingusafemutablepointer=nil
让urlData=NSURLConnection.sendSynchronousRequest(请求、返回响应:&response,错误:err)
这是可行的,但我不能再访问状态码了,因为如果我使用NSHTTPURLResponse,它会返回一个错误,需要NSURLResponse
您知道解决此问题的方法吗?您可以简单地使用
&
包装您要发送指针的值,而不是手动创建自动删除非可更改指针
,您的代码变得简单得多:
var response: NSURLResponse?
var error: NSError?
let urlData = NSURLConnection.sendSynchronousRequest(request, returningResponse: &response, error: &error)
呼叫后,您需要将响应转换为NSHTTPURLResponse
,以访问这些属性:
if let httpResponse = response as? NSHTTPURLResponse {
println(httpResponse.statusCode)
}
工作完美。非常感谢。显然,我希望您永远不要从主线程使用
sendSynchronousRequest
。人们总是喜欢异步请求(尤指可取消的请求)。