在ios 5.0和ios 6.0中管理View插座

时间:2013-07-16 04:47:59

标签: objective-c ios5 ios6 didreceivememorywarning viewdidunload

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

2 个答案:

答案 0 :(得分: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? What are the pros and cons?    ARC, worth it or not?

Good Luck !!!

答案 1 :(得分:0)

iOS 5与iOS 6的编码方式没有差别。

如果您遇到问题,那是因为您不了解viewDidUnload做什么以及何时被召唤。

卸载控制器视图时会调用

viewDidUnload。在iOS 6中,永远不会卸载视图。 在iOS 5及之前,几乎从未卸载视图。因此,在这两种情况下,几乎都不会调用viewDidUnload

如果你的程序漏了东西,那是因为你没有发布东西。您始终需要在dealloc中发布实例变量。我怀疑这是你的问题。

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

如果您正确编写了程序,我可以进入并移除viewDidUnload,这对程序的正确性没有任何影响。 (因为viewDidUnload几乎从未被调用过。)

您几乎不必使用didReceiveMemoryWarning