首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift 3 URLSession内存泄漏

Swift 3 URLSession内存泄漏
EN

Stack Overflow用户
提问于 2017-03-14 15:38:06
回答 1查看 2.5K关注 0票数 3

我在swift 3中对URLSession.shared的网络调用中有内存泄漏。这是一个错误还是我做错了什么?

代码语言:javascript
复制
override func viewDidLoad() {
    super.viewDidLoad()
    let urlStr = "https://qrng.anu.edu.au/API/jsonI.php?length=10&type=hex16&size=2"
    URLSession.shared.dataTask(with: URL(string: urlStr)!) { data, response, error in
        self.view.backgroundColor = UIColor.red
        print(response)
    }.resume()
}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-14 15:43:58

共享URL会话有一个存储cookie和其他“浏览器”内容的凭据存储。因为它是共享的,所以它是一个单例,将永远存在于您的应用程序中。Instruments将此解释为泄漏。

建议:在查找漏洞之前,请多次重复此操作。

而且,回调中的self引用很可能会在您的请求仍处于挂起状态时保留您的视图控制器。在方块开始处使用弱自我来打破循环。但这完全取决于你的设计。它至少在几个案例中得到了我的支持。

我还想参考一下这个答案:https://stackoverflow.com/a/35757989/3351794

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42780244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档