我的应用程序出现内存泄漏和崩溃,我想知道它们是否是由于我的容器视图控制器在视图控制器之间切换的方式造成的。该应用程序应允许用户浏览一长串页面。每个页面都作为 Storyboard 中的 ViewController 进行布局(每个页面都有一个数字作为其标识符)。
当我到达应用程序的第 14 页时,我可以在 Instruments 的 Activity Monitor 中看到该应用程序占用了大约 600MB 的内存(在 iPad 3 上)。这是因为每个视图控制器都有带有大图像的 UIImageViews。
我正在使用 ARC。
下面是容器视图控制器的代码。你能在某处看到内存管理问题吗?
@implementation PageNavigator
int startingPage = 0;
int currentPage = 0;
-(void)viewDidAppear:(BOOL)animated{
NSLog(@"Starting book from page %d", startingPage);
//do this only the first time the app runs
if(startingPage != -1){
UIViewController *currentPageVC = [self.storyboard instantiateViewControllerWithIdentifier:[NSString stringWithFormat:@"%d", startingPage]];
[self presentModalViewController:currentPageVC animated:YES];
currentPage = startingPage;
startingPage = -1;
}
}
//currentPageVC and its outlets should get released when it gets out of scope, right?
-(IBAction)goToNextPage{
[self dismissViewControllerAnimated:YES completion:^{
currentPage++;
UIViewController *currentPageVC = [self.storyboard instantiateViewControllerWithIdentifier:[NSString stringWithFormat:@"%d", currentPage ]];
[self presentModalViewController:currentPageVC animated:YES];
NSLog(@"Current Page is %d", currentPage);
}];
}