AFNetWorking原理分析

1.结构
会话管理器、请求序列化、响应序列化、安全认证模块、

2.AFURLSessionManager
核心变量
NSURLSession
NSOperationQueue
NSArray <NSURLSessionTask *> 各种task
dispatch_group_t completionGroup

串行队列:af_url_session_manager_creation_queue
并发队列:url_session_manager_processing_queue
gourp组:url_session_manager_completion_group

存放任务对象:AFURLSessionManagerTaskDelegate : NSObject
类似ViewModel进行任务代理的管理 。分发任务代理,其实调用这个viewModel处理方法。

获取 af_resume和af_suspend:遍历

self.session = [NSURLSession sessionWithConfiguration:self.sessionConfiguration delegate:self delegateQueue:self.operationQueue]; 代理 回调会在self.operationQueue,同步串行队列,好处append data 不用加锁。

回调->调用类AFURLSessionManagerTaskDelegate->调用完成,移除掉。并dispatch_asyc做数据解析,最后 dispatch group 队列做回调

参考:
https://www.jianshu.com/p/77cbf43fe80a

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 声明:以下是对所看源码和相关资料的整理 框架组成 AFNetworking作为开发中使用最多的第三方网络库,功能完...
    jinstar520阅读 481评论 0 0
  • 0 AFNetWorking3框架组成 将AF下载导入工程后,下面是其包结构: 除去Support Files,可...
    Claire_wu阅读 619评论 0 2
  • 为什么要用AFNetworking? 1、带block形式, 内部是任务队列进行下载 ,就是对operation的...
    知本集阅读 877评论 0 2
  • 说到AFNetwokring这个强大第三方网络请求库,大家应该都不陌生吧,ios开发、mac开发都经常用,主要是他...
    尘峰的小孩阅读 519评论 0 0
  • 闲来无事,看了同事推荐我的《周末父母》,说实在的一开始觉得还挺励志,周末妈妈因为开场的一场闹剧,决定跟儿子一起住,...
    努力做自己阅读 255评论 0 0

友情链接更多精彩内容