内存泄漏的各种情况

1.AFNetworking中的内存泄漏

内存泄漏的各种情况_第1张图片
内存泄漏的各种情况_第2张图片

AFNetworking中的AFURLSessionManager、AFSecurityPolicy、AFJSONResponseSerializer的内存泄漏:我们的项目内存检测时,发现AFNetworking中的AFURLSessionManager、AFSecurityPolicy、AFJSONResponseSerializer存在内存泄漏。

一般iOS开发者会把AFNetworking再封装一个网络请求单例,NetworkManager, 我们的项目也是这样,这样一般是不会出现内存泄漏的,后来我们发现内存泄漏后就在全局搜索AFURLSessionManager。发现原来是以前的同事在一个下载文件的地方没用封装的网络请求单例,而是直接写了请求如下图


内存泄漏的各种情况_第3张图片

这是因为AFURLSessionManager中的session没有释放掉导致AFURLSessionManager没有释放,

其实这样单独使用也没什么,因为afnetworking其实已经给了一个释放方法,只是我们不知道去用而已:

[manager.session invalidateAndCancel];

在请求结束后,用这句话释放掉就可以了。


参考文章:https://blog.csdn.net/mlcldh/article/details/79913996

你可能感兴趣的:(内存泄漏的各种情况)