AFN 引起的内存泄漏

作者: qjsxq | 来源:发表于2017-06-26 18:36 被阅读58次

    今天在做内存泄漏检测时,发现很多地方都有内存泄漏,而引起泄漏的原因居然AFN,

    网上查了资料了解到由于ARC机制导致每当实例化Session类之后,都没有地方释放掉实例。而且

    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

    manger并不是一个单例

    又看了一遍AFN自带的Demo,发现他里面是创建了一个继承自AFHTTPSessionManager的类AFAppDotNetAPIClient ,而AFAppDotNetAPIClient里是用了单例创建的对象,代码如下:

    + (instancetype)sharedClient {

    static AFAppDotNetAPIClient *_sharedClient = nil;

    static dispatch_once_t onceToken;

    dispatch_once(&onceToken, ^{

    _sharedClient = [[AFAppDotNetAPIClient alloc] initWithBaseURL:[NSURL URLWithString:AFAppDotNetAPIBaseURLString]];

    _sharedClient.securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone];

    });

    return _sharedClient;

    }

    我在项目中用了单例之后,AFN引起的内存泄漏确实没有了。

    参考链接www.jianshu.com/p/361d4b56746b

    blog.csdn.net/d1w2hj/article/details/51793065

    相关文章

      网友评论

        本文标题: AFN 引起的内存泄漏

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