我在我的iPad应用程序中有3个视图控制器。当第一个显示出来时,乐器中的活动监视器告诉我该应用程序的内存为25MB。在[self presentModalViewController]调用后,弹出一个新的视图控制器,内存高达50MB,然后是第三个70-75MB。iPad视图控制器内存管理
什么是iPad开发最好的视图控制器内存管理?当我在真正的iPad上时,我总是会收到内存警告。
在此先感谢。我很抱歉我的英语,因为它不是我的母语。 :)
我在我的iPad应用程序中有3个视图控制器。当第一个显示出来时,乐器中的活动监视器告诉我该应用程序的内存为25MB。在[self presentModalViewController]调用后,弹出一个新的视图控制器,内存高达50MB,然后是第三个70-75MB。iPad视图控制器内存管理
什么是iPad开发最好的视图控制器内存管理?当我在真正的iPad上时,我总是会收到内存警告。
在此先感谢。我很抱歉我的英语,因为它不是我的母语。 :)
你检查你的内存泄漏?
仪器 - >泄漏。
http://developer.apple.com/library/ios/#documentation/Performance/Conceptual/ManagingMemory/Articles/FindingLeaks.html
另一个考虑是alloc和释放所有正确的对象,这是不容易的,而且是必要的。
您可以从构建选项启用另一个控制:RUN_CLANG_STATIC_ANALYZER
以在编译时显示所有错误的版本。
alberto,
iPad只有256 MB的RAM,这是iPhone 4的一半。
看来你的视图控制器正在加载大量的资源,或者正在其他地方分配大量的内存。您应该能够找到仪器工具分配的内存。
我的建议是,你看看你的每个视图控制器的viewDidUnload方法。从iOS 3.0开始,当您的应用程序收到内存警告时,iOS会尝试获取一些内存。
为了更清楚起见,你应该尝试设置所有的IBOutlet在这个方法中为零,这样当调用时,你不需要的UI东西(不必要,因为那时候这些nib文件不会显示给用户)将被清除并将分配的内存返回给操作系统。当它们再次出现时,它们将由viewDidLoad方法重新创建。
示例代码:
- (void)viewDidUnload {
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;