关于AFNetworking使用发现内存泄漏以及解决
众所周知,使用一些第三方的时候,程序猿都会对第三方进行一层封装,使第三方与我们的代码隔离,当有修改的时候我们只需要在自己封装的文件上做修改,这样减少了第三方代码的入侵和方便修改。
最新的项目也是一如既往的对AFNetworking进行了封装,因为之前的都是小项目,并且也是菜鸟阶段,当然现在依然也是菜鸟,所以没有关注过内存问题,这个项目因为是购买的源码,所以存在很多问题,经常会内存飙升,所以用上了没用过的instruments,检查了下内存泄漏,不看不知道,发现各种泄漏
使用instruments检查的
查看了一下内存泄漏的地方,发现自己封装的请求有内存泄漏
这里写图片描述继续往下查看发现是AFNetworking内部泄漏
这里写图片描述百度了好久,也很难找到这类的问题,于是我去github看了下AFNetworking,并且再次把代码下载下来看了下,如下图
1.请求
2.请求封装
这里写图片描述
3.对请求队列管理者AFHTTPSessionManager继承
这里写图片描述
4.创建单例方法
这里写图片描述
于是我也学者使用单利来创建AFHTTPSessionManager
这里写图片描述
这里写图片描述
然后运行instruments,检查下内存,就会发现AFNetworing之前泄漏的地方不再泄露了
这里写图片描述
网友评论