·您现在的位置: 江北区云翼计算机软件开发服务部 >> 文章中心 >> 网站建设 >> app软件开发 >> IOS开发 >> 【读书笔记】iOS网络-异步请求与运行循环

【读书笔记】iOS网络-异步请求与运行循环

作者:佚名      IOS开发编辑:admin      更新时间:2022-07-23

异步请求需要运行循环。当数据传递到服务器或是被客户端接收时,运行循环用于实现事件与委托对象之间的通信。异步请求在发出时,会在当前线程的运行循环上操作,这个实现细节是很重要的,因为在GCD块中或者是通过NSOperationQueue创建的线程并没有运行循环。因此,如果在后台线程上发出了异步请求,那么还需要确定线程是有运行循环还是使用了别的运行循环。如下代码片断展示了如何显示地将请求处理指定给运行循环。

 

    NSURLConnection connection=[[NSURLConnection alloc]initWithRequest:request delegate:self startImmediately:NO];
    [connection scheduleInRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
    [connection start];

 

第一个操作创建了NSURLConnection对象,不过并没有立刻启动方法,这样就可以进一步初始化了。下一步代码获取到主线程的运行循环,然后将它提供给连接,作为其运行循环。最后,连接通过start方法开始处理。如果不想在主运行循环中执行异步请求,那么需要在另一个线程上创建运行循环,然后,针对这个新创建的运行循环调度连接。

 

参考资料:《iOS网络高级编程-iphone和iPad的企业应用开发》