如果在XCode中创建一个使用ARC的UIViewController,则viewDidUnload:
方法定义如下:
- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
如果在XIB中创建了一个按钮,则该代码会自动插入到方法的顶部:
[self setSomeButton:nil];
这些代码是否与ARC完全相同?
答案 0 :(得分:2)
这不受ARC的影响。你仍然需要将强大的IBOutlets设置为零。
它受iOS 6的影响。但是现在这已经在NDA之下了。
答案 1 :(得分:0)
重要的是要记住,在大多数情况下,永远不会调用viewDidUnload
。根据我的经验,只有当你的VC“高于”导航堆栈中的当前VC并且屏幕外并且存在低内存情况时才会调用它。
据我所知,Apple将那些代码放在那里提醒你的子视图已经消失了。
请注意,他们不会将该代码放在dealloc
中,因为(正如您所假设的那样)ARC 会为您进行清理(因为这些通常是弱< / em>指针)