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