使用AFNetworking 3 内存泄露
来源:互联网 发布:java new int 编辑:程序博客网 时间:2024/05/22 01:34
在使用instruments做内存泄漏分析时,发现所有使用如下语句的地方都有内存泄漏,OMG:
if (!_manager) { _manager = [AFHTTPSessionManager manager]; }
stack overflow上查了下并没有找到好的解决方案,去github的AFN的issue区查了下,确实有几个人提问了,但是每人给出解决方案。
没人解决就算了,结果这货自己莫名其妙没泄漏了,不继续探究为什么上次有内存泄漏。
无奈只能找度娘了,还好找到了解决办法,有前辈给出了解决方案:
但是我所用到的网络请求不是很复杂,不想再新建类去写单例了,就把单例放在了AppDelegate中,用到的时候在通过AppDelegate拿。因为需要用到AFHTTPSessionManager和AFURLSessionManager,所以就各写一个单例方法。
static AFHTTPSessionManager *manager ;static AFURLSessionManager *urlsession ;-(AFHTTPSessionManager *)sharedHTTPSession{ static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ manager = [AFHTTPSessionManager manager]; manager.requestSerializer.timeoutInterval = 10; }); return manager;}-(AFURLSessionManager *)sharedURLSession{ static dispatch_once_t onceToken2; dispatch_once(&onceToken2, ^{ urlsession = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]]; }); return urlsession;}
获得AFHTTPSessionManager和AFURLSessionManager单例
//AFHTTPSessionManagerAppDelegate *app = (AppDelegate *)[[UIApplication sharedApplication] delegate];AFHTTPSessionManager *manager = [app sharedHTTPSession];//AFURLSessionManagerAppDelegate *app = (AppDelegate *)[[UIApplication sharedApplication] delegate];AFURLSessionManager *urlsession = [app sharedURLSession];
全部替换完之后再用 instruments跑一遍,再也没有红叉了 ^_^ 。
2 0
- 使用AFNetworking 3 内存泄露
- AFNetworking和Reachability 的内存泄露
- iOS学习笔记61-AFNetworking造成的内存泄露处理
- 内存泄露检测工具使用
- 使用HookLogger调试内存泄露
- javascript 内存泄露工具使用
- javascript 内存泄露工具使用
- 使用BoundsChecker查找内存泄露
- 使用Valgrind 查找内存泄露
- javascript 内存泄露工具使用
- javascript 内存泄露工具使用
- javascript 内存泄露工具使用
- 使用_CrtSetDbgFlag检测内存泄露
- 使用_CrtSetDbgFlag检测内存泄露
- 使用_CrtSetDbgFlag检测内存泄露
- javascript 内存泄露工具使用
- 使用_CrtSetDbgFlag检测内存泄露
- 使用Valgrind 查找内存泄露
- js级联菜单
- GMap.Net开发之在地图上添加多边形
- xlistview_footer.xml
- 将二叉搜索树转换成双向链表
- 游戏程序员的规划
- 使用AFNetworking 3 内存泄露
- ROS在ARDUINO的应用
- 菜鸟级C语言银行管理系统
- 位运算实现加法
- 日夜间模式切换
- xlistview_header.xml
- junit4xi注释详解
- 51 NOD 1138 连续整数的和(简单数学公式)
- Android开机自启动服务的编写