我刚刚安装了新版本的Xcode/ios6。 viewDidUnload 现已弃用。
在苹果文档中,
viewDidUnload [...] Deprecated in iOS 6.0. Views are no longer purged under low-memory conditions and so this method is never called.
但是许多应用程序正在使用此回调来释放其属性,例如:
- (void)viewDidUnload {
[super viewDidUnload];
self.recipientButton = nil;
self.connectButton = nil;
self.infoLabel = nil;
}
这是发布 IBOutlet 的最佳实践。
所以,第一个问题:
这些现有的应用程序在 iOS 6 中将会发生什么?他们会泄漏吗?
第二个:
释放 IBOutlet 属性的新推荐方法是什么?在dealloc方法中?
最佳答案
对于第一个问题:
您的 ViewController 将收到 didReceiveMemoryWarning 方法回调,您可以在此方法中清空 View 和其他组件
作为引用,请查看 WWDC 2012 关于 EVOLUTION OF VIEW CONTROLLER 的视频 session ,以防万一您还没有这样做(我相信它们仅适用于注册开发人员,但不确定)。
回答你的第二个问题。
[对象释放];在解除分配中。释放前不需要给对象赋值nil。
关于deprecated - ios6 中不再调用 viewDidUnload,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12509102/