【问题标题】:When should I use the weak or strong qualifier with IBOutlets? [duplicate]我什么时候应该在 IBOutlets 中使用弱限定符或强限定符? [复制]
【发布时间】:2011-12-31 12:21:10
【问题描述】:

可能重复:
Should IBOutlets be strong or weak under ARC?

在文档中,我阅读了 “出口通常应该是弱的,除了从文件所有者到 nib 文件中的顶级对象(或者,在 iOS 中,故事板场景)应该是强的。”

例子?我不明白什么时候最好对 IBOutlet 使用“弱”而不是“强”属性。

【问题讨论】:

    标签: objective-c ios cocoa-touch ios5 automatic-ref-counting


    【解决方案1】:

    一般来说:如果您正在创建 ViewControllers 子视图的子视图的出口,它应该是弱的。只要顶视图存在(在 viewDidLoad 和 viewDidUnload 之间),对象就存在。由于 iOS 5 ARC 会自动取消弱链接,当 viewController 卸载其视图并且视图层次结构被破坏时,您的 outlet 会自动设置为 nil。

    但也许您想在您的 nib 文件中创建另一个对象(模型对象)。由于此对象不在视图层次结构下,因此您需要使 iboutlet 强大。如果你使它弱链接,对象将被自动释放,因为没有其他对象对它有强引用,ARC 将释放它并将 nil 设置为你的 IBOutlet。这不是子视图的情况,因为它的父视图与它保持着很强的联系。

    【讨论】:

    • 这个“nib 文件中的另一个对象”的子视图(子视图)怎么样。它们是磨损的还是坚固的?
    • 弱,因为它的父视图保持对它们的强引用。
    猜你喜欢
    • 2013-09-28
    • 1970-01-01
    • 2013-05-10
    • 2016-06-22
    • 2023-03-24
    • 1970-01-01
    • 2015-12-05
    • 2012-04-25
    • 2014-08-06
    相关资源
    最近更新 更多