最近研究instruments 的 leak 功能时候,检测到
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
这句代码有内存泄漏的问题,一直追溯代码发现
这个delegate的修饰符用的是retain
发现delegate的修饰符是retain,所以创建的self.session这个变量永远不会被销毁,从而导致AFHTTPSessionManager 这个类不会被销毁,苹果官方有给出相应的解决方法
1.手动释放
在success和failure的block中调用
[manager.session finishTasksAndInvalidate];
请求结束之后手动释放session
网友评论