这个问题在这里已经有了答案:




9年前关闭。






在文档中,我阅读了
“Outlets 通常应该是弱的,除了从 File's Owner 到 nib 文件中的顶级对象(或者,在 iOS 中, Storyboard场景)应该是强的。”

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

最佳答案

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

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

关于objective-c - 我什么时候应该对 IBOutlets 使用弱或强限定符?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8170522/

10-15 15:33