美文网首页
IOS 同步与异步加载数据

IOS 同步与异步加载数据

作者: Daimer | 来源:发表于2017-12-21 10:55 被阅读0次

    同步与异步的表面现象上来看,区别是数据传输会不会阻塞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];

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

    相关文章

      网友评论

          本文标题:IOS 同步与异步加载数据

          本文链接:https://www.haomeiwen.com/subject/fxwowxtx.html