Memory leaks 使用AFHTTPSessionManager时内存泄漏

Memory leaks 使用AFHTTPSessionManager时内存泄漏,memory-leaks,afnetworking,Memory Leaks,Afnetworking,环境: iOS 13/iOS 10 代码11.1 AFN网络版本:3.2.1 Swift 4.2 说明: 使用AFNetworking发布或获取Json数据时,会导致内存泄漏,我创建了一个AFHTTPSessionManager,如下所示: private static func ConfigureAFManager(requestSerialization:HttpSerializationType=HttpSerializationType.HTTP, responseSerializati

环境:

  • iOS 13/iOS 10
  • 代码11.1
  • AFN网络版本:3.2.1
  • Swift 4.2
  • 说明: 使用AFNetworking发布或获取Json数据时,会导致内存泄漏,我创建了一个AFHTTPSessionManager,如下所示:

    private static func ConfigureAFManager(requestSerialization:HttpSerializationType=HttpSerializationType.HTTP,
    responseSerialization:HttpSerializationType=HttpSerializationType.JSON,
    超时:时间间隔=30,
    标题:[字符串:字符串]?=nil
    )->AFHTTPSessionManager{
    让AFManager=AFHTTPSessionManager()
    如果requestSerialization==.JSON{
    AFManager.requestSerializer=AFHTTPRequestSerializer()
    }
    如果响应序列化==.HTTP{
    AFManager.responseSerializer=AFHTTPResponseSerializer()
    }
    对于标题中的(键、值),[:]{
    AFManager.requestSerializer.setValue(值,forHTTPHeaderField:key)
    }
    AFManager.requestSerializer.timeoutInterval=超时;
    返回AFManager
    }
    
    然后我使用它来执行后期操作:

    static func POST(httpURL:String,
    参数:有吗?,
    超时:时间间隔=30,
    标题:[字符串:字符串]?=nil,
    requestSerialization:HttpSerializationType=HttpSerializationType.HTTP,
    responseSerialization:HttpSerializationType=HttpSerializationType.JSON,
    成功:((任何?)->无效)?,
    失败:((错误?->Void)?)->Void
    {
    让AFManager=self.ConfigureAFManager(requestSerialization:requestSerialization,responseSerialization:responseSerialization,timeout:timeout,headers:headers)
    AFManager.post(httpURL,参数:parameter,进度:nil,成功:{(任务,响应)in
    成功?(回应)
    }){(任务、错误)
    失败?(错误)
    }
    }
    
    当我在Xcode上单击
    Debug Memory Graph
    时,我发现
    AFHTTPSessionManager
    \nsursessionlocal
    之间存在一些循环引用


    这只发生在3.2.1版本的AFNetworking中吗?

    我知道为什么,因为AFNetworking使用URLSession,它的委托将建立一个强引用,所以使用后AFHttpSessionManager应该调用invalidateSessionCancelingTasks