Possible Duplicate:
Should IBOutlets be strong or weak under ARC?


我简要了解了ARC,并认为一切正常,而委托则很弱。

现在,我在界面构建器中创建一个视图并制作IBOutlets,并将Xcode的默认设置设置为弱。

这个建议似乎是有原因的,大多数IBOutlets是否有理由要弱资产?

是因为这些视图(IBOutlets)已被保留,因为它们已附加到其父视图?我们很少替换IBOutlet视图吗?

但是我认为将其设置为强没有危害,这有问题吗?

最佳答案

有关为什么IBOutlet引用应该弱的讨论,请参见Resource Programming Guide: Nib Files。我从指南中引用:

除了从文件所有者到笔尖文件(或在iOS中为情节提要场景)中的顶级对象的插座外,插座通常应较弱。因此,您创建的插座通常应该比较弱,因为:


  • 例如,您在视图控制器的视图或窗口控制器的窗口的子视图中创建的插座是对象之间的任意引用,并不表示所有权。
  • 坚固的插座经常由框架类指定(例如UIViewController的视图插座或NSWindowController的窗口插座)。


  • 用我自己的两分钱,如果我拥有它,我会把它变成strong,或者我需要一个强有力的参考,以防所有者离开并且我需要保留它,但这两个都不适用。因此,我会问“为什么要使其成为strong?”,而不是问“为什么不能使其成为strong?”。如果没有充分的理由这样做,我会让Interface Builder做到这一点,并使其成为weak

    10-08 12:38