1

我想同时支持运行 iOS5 和 iOS6 的用户。但是例如UIViewController's 方法-viewDidUnload在 iOS6 中已被弃用。那么我如何将它用于运行 iOS5 的用户,而不是运行 iOS6 的用户呢?

4

2 回答 2

6

您可以继续在代码中使用此方法,只是不会调用它。如果你真的希望调用它,你可以在didReceiveMemoryWarning. 事实上,也可以将旧 iOS 的代码移到那里。

您可能感兴趣的其他更改与轮换有关。您可以实现新的 iOS6 方法,也可以保留旧的方法,它们不会相互干扰。

于 2012-09-20T21:07:28.193 回答
1

虽然确实可以继续打电话给viewDidUnload……</p>

来自 WWDC 讨论的信息是,您不仅不应该拥有viewWillUnloadiOS6viewDidUnload的情况,而且应该继续将其删除以用于将用于 iOS 5 和 iOS 6 的代码。

讲述 W​​WDC 幻灯片演示的苹果花花公子给出的理由是,苹果做了一些研究,并得出结论,它解决了一整类可以避免的崩溃问题,并且只处理了少量内存。

建议是,当前其中之一对您的应用程序绝对必要的任何内容都可能出现在 viewDidDisappear:animated: 或 dealloc 中(对于需要回馈内存的大型共享内容),并且会有很多情况两者都不是必需的。

(不是倡导者,只是转发我从 WWDC 材料中学到的关于该主题的知识……)

于 2012-09-25T08:23:18.493 回答