Swift - 同步请求获取网络数据
(自iOS9.0起,NSURLConnection.sendSynchronousRequest被废除不用了。建议改用NSURLSession的dataTaskWithRequest方法。具体用法可以参考我的另一篇文章:Swift - 使用NSURLSession同步获取数据(通过添加信号量))
注意:同步请求数据会造成主线程阻塞,必须请求结束后用户才能做其他的操作,所有通常在请求大数据或者网络不畅时不建议使用。
同步请求样例:
//创建NSURL对象 let url:NSURL! = NSURL(string: "http://www.hangge.com") //创建请求对象 let urlRequest:NSURLRequest = NSURLRequest(URL: url) //响应对象 var response:NSURLResponse? do{ //发送请求 let data:NSData? = try NSURLConnection.sendSynchronousRequest(urlRequest, returningResponse: &response) let str = NSString(data: data!, encoding: NSUTF8StringEncoding) print(str) }catch let error as NSError{ //打印错误消息 print(error.code) print(error.description) }
你好,谢谢分享,请问有做过异步的吗?
ios9.0 sendSynchronousRequest已经被弃用了,也没有error参数了,改的要抛异常了