首页 文章

我什么时候应该使用IBOutlets的弱或强定格符? [重复]

提问于
浏览
4

可能重复:IBOutlets在ARC下是强还是弱?

在文档中,我读到“Outlets通常应该是弱的,除了那些从File的所有者到nib文件中的顶级对象(或者,在iOS中,故事板场景中)应该是强大的 . ”

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

1 回答

  • 24

    一般情况下:如果您正在查看ViewControllers子视图的子视图,那么它应该很弱 . 只要顶视图存在(在viewDidLoad和viewDidUnload之间),该对象就存在 . 由于iOS 5 ARC自动使弱链接无效,因此当viewController卸载其视图并且视图层次结构被销毁时,您的插座将自动设置为nil .

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

相关问题