【读书笔记】iOS-网络-异步请求与运行循环
2024-10-19 06:29:52
异步请求需要运行循环。当数据传递到服务器或是被客户端接收时,运行循环用于实现事件与委托对象之间的通信。异步请求在发出时,会在当前线程的运行循环上操作,这个实现细节是很重要的,因为在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的企业应用开发》
最新文章
- Hibernate1
- 编码符_new
- CSS3 学习笔记
- SAP ALV OO 选择行打印
- html select 下拉箭头隐藏
- 【转载】s3c2440裸机开发调试环境(MDK4.6,Jlink v8,mini2440)
- 计数排序详解以及java实现
- Java中的try/catch/finally
- Zepto,Zepto API 中文版,Zepto 中文手册,Zepto API,Zepto API 中文版,Zepto 中文手册,Zepto API 1.0, Zepto API 1.0 中文版,Zepto 1.0 中文手册,Zepto 1.0 API-translate by yaotaiyang
- java之认识基本数据类型及其封装类装箱和拆箱总结
- Unity3D游戏开发从零单排(五) - 导入CS模型到Unity3D
- quarze的工作原理
- 使用Gradle编译release apk报错:Please correct the above warnings first
- 生成Token字符串
- iOS开发——判断是否第一次启动
- 复杂的1秒--图解Google搜索技术
- spring-boot学习笔记之Conditional
- C#保留2位小数的做法
- Codeforces Round #503 (by SIS, Div. 2)
- SQL 中的连接查询