Alamofire GET请求内存泄漏(Swift)

mr.*_*udo 6 memory-leaks cfnetwork ios swift alamofire

我是新手(ish)iOS开发人员第一次使用Alamofire为iOS 9.3应用程序发出多个GET请求:

    var i = 0
    while i < 100{
        var url = String("https://itunes.apple.com/search?term=" + "somequery")

        Alamofire.request(.GET, url).responseJSON {[weak self] response in
            switch response.result {
            case .Success:
                break


            case .Failure(let error):
                print(error)
            }

        }
       i++

    }
Run Code Online (Sandbox Code Playgroud)

每个请求都会增加应用程序的内存使用量,然后永远不会释放它.我已经使用Instruments来试图更好地了解正在发生的事情,看起来这是与CFNetwork有关的问题.

Instruments + Memory Leak的屏幕截图

我试图解决这个问题的事情:

  • 取消每项任务在会话描述这里
  • 使用此处描述的调度组
  • 使用NSURLCache.sharedURLCache()清除NSURLCache.removeAllCachedResponses()
  • 使用session.invalidateAndCancel()使会话无效并取消
  • 将requestCachePolicy更改为.ReloadIgnoringLocalCacheData

为什么会发生这种情况,如何在请求完成后释放内存?