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

概述使用 xcode 4.2 for iPhone app,不用ARC — 当我使用界面构建器创建一个插座时,xcode会在我的viewController中添加两行代码.一个在viewDidUnload中: – [self setMyOutlet:nil]和dealloc中的第二个 – [myOutlet release]. 我理解后者(发布).但是为什么在viewDidUnload中将插座设置为n @H_419_4@ 使用 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应用程序没有意义.

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

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

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

@H_419_4@ @H_419_4@ @H_419_4@ @H_419_4@ 总结

以上是内存溢出为你收集整理的objective-c – Interface Builder将控制插座设置为nil – 为什么?全部内容,希望文章能够帮你解决objective-c – Interface Builder将控制插座设置为nil – 为什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1007352.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存