热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

在swift中,是否有必要在使用后将强变量设置为nil?

如何解决《在swift中,是否有必要在使用后将强变量设置为nil?》经验,为你挑选了1个好方法。

我基本上使用outlet作为弱变量,比如

@IBOutlet weak var testButton: UIButton!

但是,如果我使用强而不是弱,会发生什么

@IBOutlet var testButton: UIButton!

使用后我必须将其设置为零吗?



1> Duncan C..:

你得到了一些不好的答案.

奥特莱斯通常很弱,并且隐含地解开了选择权.这就是!类型后的含义.

出口被声明为弱,以避免在不再需要后将视图层次结构保留在内存中.(通常情况下,出口是由它的超级视图拥有的,只是从它的超级视图中删除它会导致它被取消分配.通常这是正确的行为.如果你想要一个插座在从它的超级视图中删除后继续存在,你可以创建另一个强引用或使出口强劲,但在这种情况下,你完成它后,你可以把它弄出来)

奥特莱斯应该被宣布为弱者,除了极少数例外.是的,如果你声明它们很强大,那么当你完成它们时你应该把它们弄清楚.(虽然如果你的视图控制器被解除分配,那么它并不重要,因为它的强引用会消失.)


"出口被宣布为弱,以避免保留周期".我认为这不是原因:视图不应该强烈引用控制器层.我假设`IBOutlet'被创建为弱以使视图卸载工作.我总是让它们"强大",因为卸载已成为过去.
推荐阅读
author-avatar
爱唱歌的郭少文_
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有