私は、誰かがiPhoneのメモリに関する問題で私を助けてくれることを望んでいました。autorelease pool
私はnavコントローラの一部であるスクロールビューを持っています。
私が最初にnavコントローラを押してスクロールビューをスクロールすると(画像が追加されると)、メモリは巨大な塊(それぞれ1mb)で割り当てられます。
ディスプレイを数回回転させると、メモリが解放され、すべて正常です。スクロールビューが正常に動作し、メモリが元の場所に戻ります(約1Mb、計測器のNetアロケーションを参照)。
メモリをワイルドにしないようにするにはどうすればいいですか?スクロールビューの使用中にメモリを解放するにはどうすればできますか?ここで
はscrollviewのページをロードするために呼び出されるコードスニペットです:
- (void)loadPage:(int)page isCurrent:(BOOL)isCurrent {
if (page < 0) return;
if (page >= totalRows) return;
picViewController *controller = [[picViewController alloc] init];
if ((NSNull *)[viewControllers objectAtIndex:page] == [NSNull null]) {
NSString *fullPath = [self fullPath];
if([fileManager fileExistsAtPath:fullPath]) {
currentImage=[UIImage imageWithContentsOfFile:fullPath];
[controller setImg:currentImage];
[viewControllers replaceObjectAtIndex:page withObject:controller];
}
else {
AsyncImageView* asyncImage = [[AsyncImageView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
asyncImage.tag = 8;
[asyncImage loadImageFromName:imageName withURL:url];
[controller.view addSubview:asyncImage];
[asyncImage release];
[viewControllers replaceObjectAtIndex:page withObject:controller];
}
if (nil == controller.view.superview) {
CGRect frame = scrollView.frame;
frame.origin.x = frame.size.width * page;
frame.origin.y = 0;
controller.view.frame = frame;
[scrollView addSubview:controller.view];
}
[controller release];
}
}
こんにちはあなたのupdateCachedPagesメソッドを実装する必要があります –