NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];

_session = [NSURLSession sessionWithConfiguration:config delegate:self delegateQueue:[NSOperationQueue mainQueue]];

主要说一下这个函数参数的意义;

/**

参数

1. 配置 config

2. 代理 self

3. 代理工作的队列 必须是NSOperationQueue队列

[NSOperationQueue mainQueue] 代理在主线程上工作

nil - 代理异步工作

[[NSOperationQueue alloc] init] - 代理在异步工作

注意:URLSession 请求本身的网络操作是异步的,无论指定什么队列,都是在异步执行的

- 这里制定的队列是在此指定的代理的工作队列,表示发生网络事件后,希望在哪一个线程中工作!

队列的选择类型依据与 NSURLConnection 异步的队列选择依据相同!

-如果完成后需要做复杂(耗时)的处理,可以选择异步队列

-如果完成后直接更新UI,可以选择主队列

强调:session本身工作的线程,与代理工作的线程是不一样的

*/

例如:

又如:

[URLSession sessionWithConfiguration:config delegate:self delegateQueue:[NSOperationQueue mainQueue]的更多相关文章

  1. Model--汇总

    NSFileManager.NSURL.NSFileHandle.NSData.NSXMLParser.NSUserDefaults.NSKeyedArchiver.NSKeyedUnarchiver ...

  2. NSURLSession从网络上下载资源,此程序下载的是视频

    #import "ViewController.h" @interface ViewController ()<NSURLSessionDelegate, NSURLSess ...

  3. 网络编程(二)NSURLSessionConfiguration

    1.NSURLSession有三种工作模式 (1)defaultSessionConfiguration(默认):使用的是基于磁盘缓存的持久化策略,Cache,Cookie. (2)ephemeral ...

  4. NSURLSessionDataTask

    #import "ViewController.h" @interface ViewController ()<NSURLSessionDelegate,NSURLSessi ...

  5. ios9基础知识(技能篇)

    NSFileManager.NSURL.NSFileHandle.NSData.NSXMLParser.NSUserDefaults.NSKeyedArchiver.NSKeyedUnarchiver ...

  6. ios开发网络学习十二:NSURLSession实现文件上传

    #import "ViewController.h" // ----WebKitFormBoundaryvMI3CAV0sGUtL8tr #define Kboundary @&q ...

  7. ios开发网络学习九:NSURLSessionDownloadTask实现大文件下载

    一:NSURLSessionDownloadTask:实现文件下载:无法监听进度 #import "ViewController.h" @interface ViewControl ...

  8. NSURLSession实现文件上传

    7.1 涉及知识点(1)实现文件上传的方法 /* 第一个参数:请求对象 第二个参数:请求体(要上传的文件数据) block回调: NSData:响应体 NSURLResponse:响应头 NSErro ...

  9. iOS网络2——NSURLSession使用详解

    原文在此 一.整体介绍 NSURLSession在2013年随着iOS7的发布一起面世,苹果对它的定位是作为NSURLConnection的替代者,然后逐步将NSURLConnection退出历史舞台 ...

随机推荐

  1. crontab下git命令无效

    原因 crontab默认的 path  设置和系统自身的有区别 git 命令放在 /usr/local/bin/ 目录 whereis git 而crontab 却在  /sbin:/bin:/usr ...

  2. Android Studio解决Error:moudle not specified

    在使用Android Studio 进行Builder APKs的时候,如果发现无法degub, 进行配置的时候 没有module可以进行指定,如果所示(借个图) 问题的原因一般是Grade File ...

  3. 代码中设置color的selector

    //应该用getColorStateList这种方式 xml中设置时直接color引用就可以了 textView.setTextColor(getResources().getColorStateLi ...

  4. 20175120彭宇辰 《Java程序设计》第六周学习总结

    教材学习内容总结 第七章 一.内部类与外部类的关系 1.内部类可以使用外嵌类的成员变量和方法.2.类体中不可以声明类变量和类方法,外部类可以用内部类声明对象.3.内部类仅供外嵌类使用.4.类声明可以使 ...

  5. ubuntu下安装无界面浏览器

    ubuntu下安装PhantomJS 1.下载: 32位:wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-li ...

  6. sed命令讲解

    sed命令选项及作用 -n 不打印所有的行到标准输出 -e 表示将下一个字符串解析为sed编辑命令 -f 表示正在调用sed脚本文件 sed编辑命令 p 打印匹配行 = 打印文件行号 a\ 在定位行号 ...

  7. cookie 就是一些字符串信息

    什么是 Cookie “cookie 是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie.你可以使用JavaScript 来创建和取回cookie 的 ...

  8. zabbix升级遇到连接不上数据库的问题

    问题 迁移zabbix-server端时,原来是4.0版本,现在为4.2版本,遇到如下问题       解决办法 update dbversion set mandatory=;        

  9. cpt212b--- 触摸芯片配置

    软件的应用: 1.可以依照你所需要的芯片类型建立适当的工程,下面是在没有j-link的情况时的一种操作方式 建立完工程后,cpt212b的配置参数页面如上,更改参数点击Save 按钮,软件自动生成 . ...

  10. 开发系统app所遇到的问题及解决

    1. 在源码环境中编译app时(使用mmm编译需要根据app写好Android.mk文件)遇到如下问题 error: Resource at colorPrimary appears in overl ...