Alamofire GET请求内存泄漏(Swift)

时间:2016-05-26 04:39:43

标签: ios swift memory-leaks alamofire cfnetwork

我是新手(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++

    }

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

Screenshot of Instruments + Memory Leak

我试图解决问题的事情:

  • 按照here
  • 所述取消会话中的每项任务
  • 使用here
  • 所述的调度组
  • 使用NSURLCache.sharedURLCache()清除NSURLCache.removeAllCachedResponses()
  • 使用session.invalidateAndCancel()
  • 使会话无效并取消
  • 将requestCachePolicy更改为.ReloadIgnoringLocalCacheData

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

0 个答案:

没有答案