deprecated - ios6 中不再调用 viewDidUnload

标签 deprecated ios6 viewdidunload

我刚刚安装了新版本的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/

相关文章:

android - NetworkInfo 已被 API 29 弃用

IOS 6 自定义 UIView by paintcode

ios - 为 iPhone 5 屏幕尺寸命名图像的名称是什么?

ipad - 如何使用 UISplitViewController 从 viewDidUnload 中恢复(出现内存警告后)

iOS:viewWillUnload?

iphone - 在 viewDidUnload 中释放有什么区别吗?

java - 在 eclipse 中将所有来自 java 包的标记为 @Depracated

python - 在迁移到 Django 1.6 时摆脱 get_profile()

assembly - 是否有已弃用的 x86 指令列表?

iphone - 多个 View Controller 的方向