gpt4 book ai didi

iphone - 为什么我看到一些代码是在 viewDidUnload 中发布的,而不是在 dealloc 中?

转载 作者:行者123 更新时间:2023-11-28 19:23:45 25 4
gpt4 key购买 nike

我完成的所有教程都说我在 viewDidUnload 中将东西设置为 nil,然后在 dealloc 中释放。但是我被告知这会导致内存泄漏,因为 viewDidUnload 在 dealloc 之前被调用,所以我无法释放任何设置为 nil 的东西。

有人可以帮忙澄清一下吗?

最佳答案

如果你在viewDidLoad中创建一个对象(使用allocinit),那么你应该release它在 viewDidUnload 中。原因是有时候调用了viewDidUnload来节省内存,但是没有调用dealloc。然后,稍后可能会再次调用 viewDidLoad。一般来说,释放你在逆向方法中分配的任何东西,例如

如果您在 init 中分配一个对象,然后在 dealloc 中释放它。

如果你在viewDidLoad中分配一个对象,然后在viewDidUnload中释放它。

如果你在viewWillAppear(或viewDidAppear)中分配一个对象,然后在viewWillDisappear(或viewDidDisppear)中释放它>).

关于iphone - 为什么我看到一些代码是在 viewDidUnload 中发布的,而不是在 dealloc 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6274155/

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