美文网首页
1.内存泄漏检测日志之

1.内存泄漏检测日志之

作者: 雪里的懒猪 | 来源:发表于2017-03-22 16:26 被阅读0次

    在使用instruments做内存泄漏分析时,发现所有使用如下语句的地方都有内存泄漏,OMG:

    if (!_manager) {

             self.manager = [AFHTTPSessionManager manager];

    }

    只能找度娘了,还好找到了解决办法,有前辈给出了解决方案:

    但是我所用到的网络请求不是很复杂,不想再新建类去写单例了,就把单例放在了AppDelegate中,用到的时候在通过AppDelegate拿。因为需要用到AFHTTPSessionManager和AFURLSessionManager,所以就各写一个单例方法。

    static AFHTTPSessionManager *manager ;

    static AFURLSessionManager *urlsession ;

    -(AFHTTPSessionManager *)sharedHTTPSession{

    static dispatch_once_t onceToken;

    dispatch_once(&onceToken, ^{

    manager = [AFHTTPSessionManager manager];

    manager.requestSerializer.timeoutInterval = 10;

    });

    return manager;

    }

    -(AFURLSessionManager *)sharedURLSession{

    static dispatch_once_t onceToken2;

    dispatch_once(&onceToken2, ^{

    urlsession = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];

    });

    return urlsession;

    }

    获得AFHTTPSessionManager和AFURLSessionManager单例

    //AFHTTPSessionManager

    AppDelegate *app = (AppDelegate *)[[UIApplication sharedApplication] delegate];

    AFHTTPSessionManager *manager = [app sharedHTTPSession];

    //AFURLSessionManager

    AppDelegate *app = (AppDelegate *)[[UIApplication sharedApplication] delegate];

    AFURLSessionManager *urlsession = [app sharedURLSession];

    全部替换完之后再用 instruments跑一遍,再也没有红叉了 ^_^ 。

    相关文章

      网友评论

          本文标题:1.内存泄漏检测日志之

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