[升级到iOS 13后,iPhone X中发生内存泄漏

问题描述 投票:0回答:1

我在iPhone X上更新到iOS 13后,便开始发生内存泄漏,并且内存消耗持续增加,而且从未减少。在其他设备(例如iPhone 6,7等)上也没有发生这种情况。

我已经尝试使用显示以下泄漏图的仪器调试泄漏

Memory leak flow diagram

ios swift memory-management memory-leaks iphone-x
1个回答
0
投票

这里列出了多个URLSession对象。这表明这些会话已实例化,但从未释放。

如果要为每个请求创建一个单独的会话,请确保在提交请求后调用finishTasksAndInvalidate,以便URLSession可以自己清除。

例如,以下...

func start() {
    let session = URLSession(configuration: .default, delegate: self, delegateQueue: nil)

    session.dataTask(with: url).resume()
}

...结果:

enter image description here

但是,如果我们添加finishTasksAndInvalidate,则可以解决:

func start() {
    let session = URLSession(configuration: .default, delegate: self, delegateQueue: nil)

    session.dataTask(with: url).resume()

    session.finishTasksAndInvalidate()
}

或者,实例化单个URLSession(或使用URLSession.shared),然后所有请求都可以共享同一会话。

© www.soinside.com 2019 - 2024. All rights reserved.