我基本上使用outlet作为弱变量,比如
@IBOutlet weak var testButton: UIButton!
Run Code Online (Sandbox Code Playgroud)
但是,如果我使用强而不是弱,会发生什么
@IBOutlet var testButton: UIButton!
Run Code Online (Sandbox Code Playgroud)
使用后我必须将其设置为零吗?
你得到了一些不好的答案.
奥特莱斯通常很弱,并且隐含地解开了选择权.这就是!类型后的含义.
出口被声明为弱,以避免在不再需要后将视图层次结构保留在内存中.(通常情况下,出口是由它的超级视图拥有的,只是从它的超级视图中删除它会导致它被取消分配.通常这是正确的行为.如果你想要一个插座在从它的超级视图中删除后继续存在,你可以创建另一个强引用或使出口强劲,但在这种情况下,你完成它后,你可以把它弄出来)
奥特莱斯应该被宣布为弱者,除了极少数例外.是的,如果你声明它们很强大,那么当你完成它们时你应该把它们弄清楚.(虽然如果你的视图控制器被解除分配,那么它并不重要,因为它的强引用会消失.)
| 归档时间: |
|
| 查看次数: |
1647 次 |
| 最近记录: |