加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c – Interface Builder将控制插座设置为nil – 为什

发布时间:2020-12-14 17:30:23 所属栏目:百科 来源:网络整理
导读:使用 xcode 4.2 for iPhone app,不用ARC — 当我使用界面构建器创建一个插座时,xcode会在我的viewController中添加两行代码.一个在viewDidUnload中: – [self setMyOutlet:nil]和dealloc中的第二个 – [myOutlet release]. 我理解后者(发布).但是为什么在v
使用 xcode 4.2 for iPhone app,不用ARC —

当我使用界面构建器创建一个插座时,xcode会在我的viewController中添加两行代码.一个在viewDidUnload中: – [self setMyOutlet:nil]和dealloc中的第二个 – [myOutlet release].

我理解后者(发布).但是为什么在viewDidUnload中将插座设置为nil.是不是在dealloc之前调用viewDidUnload并且不会将出口设置为nil否定dealloc中的释放操作?设置为nil有意义我会考虑构建一个使用垃圾收集的Mac应用程序 – 但它对iPhone应用程序没有意义.

为什么界面构建器会这样做?我应该删除将出口设置为零的行吗?

解决方法

可以调用viewDidUnload,也可以不调用它.这取决于当前的内存使用情况. dealloc是一个你应该清理所有属性的地方(比如数组,自定义对象).在viewDidUnload中,您可以清理视图以及为支持视图而创建的对象. viewDidUnload意味着您的视图被卸载(但不是整个视图控制器),并且可能在将来再次创建和加载(当然在viewDidLoad中).

>为什么没有 – Objective-C Difference between setting nil and
releasing
> Understanding How Views Are Loaded and Unloaded

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读