每个UI元素都应该有一个IBOutlet吗?

时间:2013-01-26 01:27:48

标签: ios objective-c interface-builder

在IB中创建UI时,我经常使用具有操作的按钮,但视图控制器没有理由访问此按钮。

按钮文字永远不会改变,按钮图像永远不会改变,它永远不会移动等等......

因此我没有给它一个IBOutlet属性,我也没有把它连接到VC中的任何东西(当然除了动作)。

有一个类似的问题我已经读过了,那里的论点会涉及内存管理问题。这个问题是从2011年初开始,在ARC之前。鉴于我的所有IBOutlet属性都是弱的,内存由他们的超级视图处理,而不是由视图控制器处理。所以这个问题中提到的问题现在没有用了。

现在有理由将它们连接起来吗?他们应该总是有联系吗?如果是这样,为什么?

2 个答案:

答案 0 :(得分:7)

简答:不。

需要

IBOutlet来引用UI的元素。

如果您不需要访问此类元素,则无需使用IBOutlet

进行连接

答案 1 :(得分:1)

答案是否定的。

但是这里有一个有价值的提示,如果有人看到这个问题/答案并且去了并且删除了所有未使用的IBOutlets。

如果您删除了UIElement的IBOutlet,请确保IB中的UIElement未引用现在不存在的插座。否则,你会遇到一些奇怪的崩溃,需要相当长的时间才能解决。

这是一个让我多次喝汤的问题。我不确定这是否已在Xcode的最新版本中得到修复,但检查起来更安全。