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/

相关文章:

java - 如何用类之间的相互依赖替换 Java 11 项目中已弃用的 finalize() 方法

java - 使用 EnumSet(不同类型)作为参数的相同方法名称

iphone - 将地理坐标转换为CGPoint并在UIView中画线

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

c# - MonoTouch - 获取已连接 socket 的列表

java - 弃用方法意味着什么?

android - getInstallerPackageName(String) : String? ' 已弃用。在 Java 中已弃用

ios - iOS 设备上的每英寸点数

ios - ios 不平衡过渡