关于AFNetworking3.0中AFHTTPSessionManager内存泄露的问题

在使用Xcode的Leaks时,一进程序就出现了泄漏.....打击不小。后来定位到是因为


定位错误的位置

心想,AFN的单例也报错,这怎么改?
于是Google,找到这篇文章使用AFNetworking 3 内存泄露

说是ARC机制中,SessionManager没创建但是没有地方释放。解决方法就是讲SessionManager改为单例即可。但是单例也会一直存在,没有泄露但是却占用内存。
觉得可以将AFHTTPSessionManager的类方法改为单例.....(菜鸟个人理解)


这是我解决部分代码,就是改个单例

+ (instancetype)sharedManager {
    static AFNRequest *afnManager;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        afnManager = [[self alloc] init];
        AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
        manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];
        manager.responseSerializer = [AFHTTPResponseSerializer serializer];
        manager.requestSerializer.timeoutInterval = 10.f;
        afnManager.manager = manager;
    });
    return afnManager;
}

(第一次写,搜半天怎么写代码........附:类似/* xx */方式,代码用字符为``` 包围就可以了)

你可能感兴趣的:(关于AFNetworking3.0中AFHTTPSessionManager内存泄露的问题)