IOS网络之同步与异步加载数据详解

同步与异步的表面现象上来看,区别是数据传输会不会阻塞UI。

而实际上,同步加载数据就是在主线程中进行数据加载。

而异步加载数据就是在非主线程中加载数据。

-------------------------------

鉴于用户的网络状况可能会有很多不可预知的状况,所以一般情况下都是使用异步加载,这样不会使用户在网络情况较差的情况下面对一个很长的空白期。


---------同步加载----------

NSURLResponse* response=nil;

NSError* error=nil;

NSData* data=[NSURLConnection sendSynchronusRequest:request returningResponse:&response error:&error];(sendSynchronusRequest:发送同步请求)

(比较明显的特点是:同步是没有代理方法的。)

或者:

NSURL* url=[NSURL URLWithString:[NSURL urlWithString:@"www.baidu.com"]]

NSData* data=[NSData dataWithContensOfURL:url];

(凡是使用dataWithContensOfURL的都是同步方法,因为这句话定义在主线程中,主线程会阻塞等待这句话完成。如果开辟一个子线程去执行它,就不会有租塞现象。)


--------异步加载---------

NSURLConnection* request=[[NSURLRequest alloc]initWithURL:[NSURL urlWithString:@"www.baidu.com"]];

[NSURLConnection connectionWithRequest:request delegate:self];

(这里将自身设为代理对象)




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值