iOS AFHTTPSessionManager内存泄漏解决方案

作者: 齐舞647 | 来源:发表于2018-07-31 13:29 被阅读11次

第一种方案:把该manager封装成单例

解决理由:内存中的某一块固定的地址就用来存放manager,专门用来网络请求和释放

问题:很明显,同一时刻只能有一个网络请求。异步会有问题。当两个线程同时申请manager对象时,肯定有一个manager申请不到,无法网络请求

第二种方案:在网络请求的block内把task取消掉

无论是success,还是failure的回调都取消掉,当然在block外部需要弱化一下manager对象

__weak typeof(manager) weakManager = manager;

然后在两个回调方法里加上

[weakManager invalidateSessionCancelingTasks:YES];

推荐第二种,封装在某个网络请求基类里,或者每次网络请求结束都写上。

完美解决了用leaks检测出来的内存泄漏问题。

相关文章

网友评论

    本文标题:iOS AFHTTPSessionManager内存泄漏解决方案

    本文链接:https://www.haomeiwen.com/subject/bmzcvftx.html