首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Iphone dev - ViewDidUnload

Iphone dev - ViewDidUnload
EN

Stack Overflow用户
提问于 2012-03-05 07:37:17
回答 2查看 490关注 0票数 1

我正在使用ARC

在我正在观看的一些教程中,他曾经编写过一个UILabel,然后在方法ViewDidUnload中写道: self.theLabelVariable = nil;从那以后,我再也没有见过他用ViewDidUnload编写任何东西。目前还没有。

我对这个方法中应该包含哪些代码感到有点困惑。

  1. 我应该在里面写什么,什么时候写?它评论道:“释放主视图的任何保留的子视图。例如,self.myOutlet = nil;”虽然

不太确定这是什么意思。

  1. 它也有一个“超级ViewDidUnload”,它是做什么的?

  1. 有人说“当你不打算再次使用它时,将它设置为零是一个好主意”。但在教程中,有人写了"self.TheLabelVariable = nil",当我点击主页按钮,然后再次打开应用程序时,一切都很正常。或者当你按下主页按钮时,它不是cViewDidUnload吗?我想第三个问题是:什么时候调用?
EN

回答 2

Stack Overflow用户

发布于 2012-03-05 07:41:58

你应该用你所有的IBOutlets做到这一点。

票数 0
EN

Stack Overflow用户

发布于 2012-03-05 07:54:43

1-应该使用viewDidUnload释放(如果是属性,则设置为nil )卸载视图时不需要的任何对象,例如视图,并且您将在viewDidLoad上重新创建这些对象。示例:在卸载视图时(通过按下主页按钮),您不需要标签,然后释放它,然后在视图加载时重新创建它(应用程序出现)。

2-超类调用超类上的方法。例如,如果你有一个类是UIViewController的后代,调用超级viewDidUnload将执行苹果的UIViewController viewDidUnload代码(可能是空的……或者不)。

3-参见1上的示例。但问题是:当你不再需要一个对象时,将它设置为零,这样它就可以被释放,并且不会浪费内存。

如果我漏掉了什么,或者你有什么不明白的,请告诉我。

编辑

对于从一个名为IBOutlets的XIB文件(接口构建器)初始化的视图,您不需要执行self.label=nil;因为UIViewController会为您执行此操作。就像它为你初始化它一样,它也会释放它。

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

https://stackoverflow.com/questions/9559943

复制
相关文章

相似问题

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