누군가가 iPhone의 메모리 문제로 나를 도울 수 있기를 바랬습니다.자동 출시 풀
nav 컨트롤러의 일부인 scrollview가 있습니다.
먼저 nav 컨트롤러를 누르고 스크롤 뷰를 스크롤 할 때마다 (이미지가 추가됨) 메모리는 거대한 덩어리로 할당됩니다 (예 : 각 1MB).
디스플레이를 두 번 회전하면 메모리가 해제되고 모든 것이 정상입니다. scrollview가 올바르게 작동하고 메모리가 원래 위치 (즉, 약 1MB, 인스트루먼트의 넷 할당을보고)로 돌아갑니다.
메모리가 거칠어지지 않도록하려면 어떻게해야합니까? 아니면 기기 회전과 마찬가지로 스크롤보기 사용 중에 메모리를 비울 수 있습니까? 여기
가있는 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 메소드를 구현해야합니다. –