我正在测试我的 iPhone 应用程序的内存。 xcode 4.2.1,ios 5.0+,使用 ARC
我有两个 View Controller 。第一个有一个 UIButton 网格,第二个 View Controller 有关于用户触摸的按钮的详细信息。我正在使用推送segue。
我正在使用标记堆工具来测量堆增长。我触摸一个按钮,然后单击返回,然后单击“标记堆”,我这样做了几次。我的每个堆的标记堆增长在 1-2 mb 之间。
我预计堆增长为零。在更详细的描述中,我看到堆增长是由于非对象。我使用了泄漏工具,它没有显示任何泄漏的内存。
堆增长的原因可能是什么?我如何解决它?
弹出一个 UIViewController 是什么意思?当我单击导航栏中的后退按钮时,它是否会完全删除 UIViewController 并从内存中释放 UIViewController 和 subview ?还是我需要手动做一些事情?
谢谢!我很困惑...
最佳答案
确保每次单击按钮时都没有创建下一页类的对象。使用 if(!objVC) 之类的检查然后做一些事情..
这将使您的类只分配一次,并且您必须在 viewDIdUnload 的 viewWillDisappear 的下一页上管理对象的数据。
关于iOS推送/弹出 View Controller 内存仍在增加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11555339/