当使用ARC与iOS5,弱IBOutlet中创建了一个调零基准,避免在需要在iOS 4上使用ARC时,在使用unsafe_unretained而不是weak时是否需要删除我的IBOutlet属性?
self.< IBOutlet property > = nil;
- (无效)viewDidUnload
如果我使用的iOS 4(和使用ARC),并被迫使用unsafe_unretained相反,它意味着我必须重写viewDidUnload和物业手动设置为零?
编辑: 这涉及到我的情况:Should IBOutlets be strong or weak under ARC? 例外是:我不能使用'weak'关键字创建归零引用。
希望我的问题更清楚。
由于
你为什么使用'unsafe_unretained'?在iOS中(与OS X相反),应该保留IBOutlets。 – zaph 2012-04-05 10:59:55
@Zaph我刚看了一下[资源编程指南 - 管理Nib文件中对象的生存期](https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/LoadingResources/ CocoaNibs/CocoaNibs。html),它似乎建议你只对顶级对象使用强,对其他所有对象使用较弱,这与我以前相信的相反,但对于您创建的这个“Outlet”行来说是有意义的,例如,视图控制器的视图或窗口控制器的窗口,是不隐含所有权的对象之间的任意引用。 – 2012-04-05 11:07:38
@Paul我明白你说的是真的 - 但是这个建议对于完全理解所有含义的开发者来说真的只是一个好消息。显然这个操作不适用于很多开发人员。请参阅下面的答案。 – zaph 2012-04-05 11:30:13