アプリでメモリ リークとクラッシュが発生しています。コンテナの View Controller が View Controller 間で切り替わる方法が原因であるかどうかを知りたいです。アプリは、ユーザーが長い一連のページをナビゲートできるようにする必要があります。各ページは、ストーリーボードの ViewController としてレイアウトされます (各ページには識別子として番号があります)。
アプリの 14 ページに到達するまでに、Instruments のアクティビティ モニターで、アプリが (iPad 3 で) 約 600MB のメモリを必要とすることがわかります。これは、各ビュー コントローラーに大きな画像を含む UIImageView があるためです。
ARCを使用しています。
以下は、コンテナ View Controller のコードです。メモリ管理の問題がどこかに見られますか?
@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);
}];
}