gpt4 book ai didi

swift - 如何快速从 View Controller 释放内存

转载 作者:可可西里 更新时间:2023-11-01 00:57:29 38 4
gpt4 key购买 nike

我需要知道如何从选项卡栏 Controller 项目中的 View Controller (释放/释放)内存,deinit 方法不调用两个 View Controller 。我使用仪器工具,它告诉我它在内存中而不是释放它

以下是我的两个 View Controller 的代码点击应用程序中的第一个 View Controller 是:

import UIKit

class WebViewController: UIViewController {

override func viewDidLoad() {
super.viewDidLoad()

}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

deinit {
print("web view controller is De init")
}

override func viewWillDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
self.dismiss(animated: true, completion: nil)


}

}

在点击的应用程序中,同一项目中的第二个 View Controller 如下:

import UIKit

class MovieDownloadingViewController: UIViewController {

override func viewDidLoad() {
super.viewDidLoad()

// Do any additional setup after loading the view.
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

override func viewWillDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
self.dismiss(animated: true, completion: nil)

}

deinit {
print("Movie Downloading View Controller is De init")
}



}

你可以试试代码,看看 deinit 方法不调用

请问什么时候是强引用,错误的代码会泄漏内存,因此它无法从这些 View Controller 释放内存?

最佳答案

如果您想在选择选项卡时释放 View Controller ,则不应使用选项卡栏 Controller ,而应该使用自己的 Controller (使用选项卡 View ,并执行 View Controller 包含调用以添加和删除 subview Controller 当您选择标签时)。

但更深层次的问题是,您为什么要经历所有这些? View Controller 使用的内存量可以忽略不计。如果您正在尝试解决内存问题,请确定是什么占用了大量内存,然后在 viewDidDisappear 中仅释放内存,而不释放 View Controller 。

关于swift - 如何快速从 View Controller 释放内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42480355/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com