什么时候应该使用IBOutlets的弱或强限定符?

可能重复:
在IB之下IBOutlets应该强大还是弱?

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

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

一般来说:如果你正在做一个ViewController子视图的子视图的出口,它应该是弱的。 只要存在顶视图(在viewDidLoad和viewDidUnload之间),对象就存在。 由于iOS 5 ARC会自动将弱链接取消,因此当viewController卸载其视图和视图层次结构时,销毁将自动设置为零。

但也许你想在你的nib文件(模型对象)中创build另一个对象。 由于此对象不在视图层次结构下,因此您需要使iboutlet变得更强大。 如果你使它弱连接,对象将被自动释放,因为没有其他的对象有强烈的引用,ARC会释放它,并设置为你的IBOutlet。 子视图并不是这样,因为它的超级视图与它有着紧密的联系。