0

我正在开发一个转换为 ARC 的 iPad 应用程序。应用程序适用于 os >= ios 5.0。所以我的疑问是,我该如何管理 viewOutlets?我使用 -(void)didReceivememoryWarning 将 ViewOutlets 设置为 nil。但在 ios 5.0 和 5.1 应用程序中显示大量内存泄漏。由于 -(void)viewDidUnload 在 ios 6.0 中已弃用,因此我在应用程序中没有使用相同的。管理网点的方法正确吗?请给我一个快速的答复。

4

2 回答 2

2

ARC(自动引用计数)功能在 iOS 5 及更高版本(iOS 6 等)中可用。

When you are using ARC unable in your project, you dont need to `manually release any object` that you have allocated for your stuff.

ARC will automatic handle this one.so it will beneficial for `Memory Management`.


Hope ,You understand what i m trying to say.

有关更多说明,请参阅以下链接: To ARC or not to ARC?优缺点都有什么? ARC,值得与否?

Good Luck !!!
于 2013-07-19T04:47:51.490 回答
0

iOS 5 和 iOS 6 的编码方式没有区别。

如果你遇到问题,那是因为你不明白什么viewDidUnload时候调用它。

viewDidUnload在卸载控制器的视图时调用。在 iOS 6 中,视图永远不会被卸载。在 iOS 5 及之前的版本中,视图也几乎从不卸载。所以在这两种情况下,几乎viewDidUnload都不会被调用。

如果你的程序泄漏了东西,那是因为你没有释放东西。您总是需要在dealloc. 我怀疑这是你的问题。

当控制器的视图被卸载时(这只发生在 iOS 5 和之前的版本中,但这无关紧要),viewDidUnload允许您有选择地丢弃一些资源以节省内存,只要它们是在加载视图时将重新创建的资源再次。这通常包括作为出口的属性和实例变量(因为加载视图时,它将再次加载 Xib 并将出口重新连接到新对象),以及在viewDidLoad.

如果你的程序编码正确,我可以进去删除viewDidUnload,它不会对程序的正确性产生任何影响。(因为viewDidUnload几乎从来没有被调用过。)

您几乎不必使用didReceiveMemoryWarning任何一种。

于 2013-07-17T09:14:26.493 回答