gpt4 book ai didi

objective-c - 在 Objective-C 中删除动态创建的对象时,我应该将什么设置为 nil?

转载 作者:行者123 更新时间:2023-11-28 18:41:19 26 4
gpt4 key购买 nike

简单的问题提醒,但我想确定我没有犯傻。

在我的 iPad 应用程序中,我动态创建了一个 UIView,并用 UIButtons、UIImageViews 填充它,有时是一个 MPMoviePlayerController,有时是一个带有一些 UIImages 作为动画的 UIImageView。

一定时间后,我将从屏幕上移除 View 并将其丢弃。

问题是:我应该将这些对象中的任何一个设置为 nil 吗?

我在分配后释放所有内容,并且没有任何泄漏。但是我的应用程序在内存不足后最终崩溃了。我构建的这些 View 中的每一个似乎都潜伏在内存中的某个地方。

任何帮助,非常感谢。

邓克斯

最佳答案

如果没有代码或不知道您是否在使用 ARC(猜测不是,因为您说的是“发布”),很难发表评论。

  1. 进行分析并修复它标记的每个问题。它非常擅长告诉您是否正确保留/释放
  2. 使用 Leaks Instrument 查找泄漏
  3. 如果你没有更多的泄漏,但仍然崩溃,那么打开僵尸并确保你没有过早发布任何东西

将变量设置为 nil 不会释放内存。如果您有一个使用 (retain) 声明的 @property,自动生成的 setter 将实现它,因此将属性设置为 nil 将释放旧值。

任何具有属性的类的dealloc 都需要对作为保留对象指针的所有属性执行此操作。对于 UIViewControllers,您还希望在 viewDidUnload 中为 IBOutlet 属性执行此操作。

关于objective-c - 在 Objective-C 中删除动态创建的对象时,我应该将什么设置为 nil?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10538468/

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