在 UIViewController 中创建的子视图的弱引用

Weak References for subviews created in a UIViewController

假设我以编程方式创建了一个 UILabel,然后将其作为子视图添加到我自己的 UIViewController 的子视图class 的主视图中。我还想在我的视图控制器的 class 级别存储对它的引用,以便我以后可以使用它。我应该把它作为弱参考吗? 更重要的是为什么?

我看到人们总是这样做,我不明白。我以为弱引用的目的是避免循环引用,但这里没有循环引用。

我当然在人们使用 storyboards/nibs 的所有代码中都看到了这一点(我从未尝试过使用它,所以我只了解非常基本的水平)但即使在那里我也不明白为什么弱引用将是适当的。那里也没有保留循环,对吗?

不,没有理由认为它是弱引用,您已正确地将其识别为一种单向关系。过去,Interface Builder 代码生成器默认生成弱引用(这可能是您经常看到它的原因。)Apple 对此的指导随着时间的推移而改变,您可以在这里阅读: Should IBOutlets be strong or weak under ARC?