我刚安装的Xcode / iOS6的新版本。 viewDidUnload正在贬值。
在苹果文档,
viewDidUnload [...]弃用的iOS 6.0。 视图是低内存情况下不再清除,因此该方法不会被调用。
但是,应用程序的数量都采用这种回调来释放自己的属性,如:
- (void)viewDidUnload {
[super viewDidUnload];
self.recipientButton = nil;
self.connectButton = nil;
self.infoLabel = nil;
}
这是释放你的IBOutlets的最佳实践。
所以,第一个问题:
这是怎么回事在iOS 6中发生的这些现有的应用程序吗? 他们会泄漏?
和第二个:
什么是释放一个IBOutlet属性的新推荐的方式? 在dealloc方法?
对于第一个问题:
您的视图控制器将获得didReceiveMemoryWarning方法回调,您可以零出此方法中的观点与其他组件
做参考检查EVOLUTION视图控制器WWDC 2012视频会话,如果你有没有(我相信他们是仅适用于注册开发者,但不知道)。
回答你的第二个。
[对象释放]; 在dealloc中。 无需分配零释放之前反对。
我建议你使用弱属性,如IBOutlets
@property (weak) IBOutlet UILabel * labelText;
这样,你就不需要在dealloc中做任何事情。 在iOS 6中,根本ViewDidUnload不会叫,iOS5的或更早时内存不足的警告已经出现,那就只需要调用。
与第二一:什么是释放一个IBOutlet属性的新推荐的方式? 在dealloc方法?
什么是“老字号”推荐的方法? 你必须始终释放保留的实例变量dealloc
; 它一直是这样的,仍然是这样。
这只是在viewDidUnload
(其中只要求低内存),你也可以设置你的属性nil
。