iOS关于AFNetworking使用发现内存泄漏以及解决

本文介绍了一个关于AFNetworking封装导致的内存泄漏问题及其解决方案。通过使用单例模式创建AFHTTPSessionManager,有效地解决了AFNetworking在实际应用中出现的内存泄漏问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于AFNetworking使用发现内存泄漏以及解决

众所周知,使用一些第三方的时候,程序猿都会对第三方进行一层封装,使第三方与我们的代码隔离,当有修改的时候我们只需要在自己封装的文件上做修改,这样减少了第三方代码的入侵和方便修改。

最新的项目也是一如既往的对AFNetworking进行了封装,因为之前的都是小项目,并且也是菜鸟阶段,当然现在依然也是菜鸟,所以没有关注过内存问题,这个项目因为是购买的源码,所以存在很多问题,经常会内存飙升,所以用上了没用过的instruments,检查了下内存泄漏,不看不知道,发现各种泄漏
使用instruments检查的

查看了一下内存泄漏的地方,发现自己封装的请求有内存泄漏

这里写图片描述

继续往下查看发现是AFNetworking内部泄漏

这里写图片描述

百度了好久,也很难找到这类的问题,于是我去github看了下AFNetworking,并且再次把代码下载下来看了下,如下图

1.请求
这里写图片描述
2.请求封装
这里写图片描述
3.对请求队列管理者AFHTTPSessionManager继承
这里写图片描述
4.创建单例方法
这里写图片描述

于是我也学者使用单利来创建AFHTTPSessionManager
这里写图片描述
这里写图片描述

然后运行instruments,检查下内存,就会发现AFNetworing之前泄漏的地方不再泄露了
这里写图片描述

公司的项目.png

公司的项目,求支持,如果发现什么问题,可以留言反应,感激不尽

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值