내 iPad에서 이미지를 캐 러셀에로드하는 응용 프로그램을 실행 중입니다. 총 138 개의 이미지가 있습니다. 그 수를 100으로 줄이면 응용 프로그램이 잘로드됩니다. 그러나 138에서, 애플리케이션은 충돌보다는 일시 정지한다.메모리 문제 또는 다른 것이 있습니까?
중단 점으로 표시된 것처럼 viewDidLoad 및 첫 번째 for
문에 도달했습니다. 문제는 두 번째 for
문에 있습니다.
// loading images into the queue
loadImagesOperationQueue = [[NSOperationQueue alloc] init];
NSMutableArray *tmpArray = [[NSMutableArray alloc] initWithCapacity:14];
for (int i = 0; i < 137; i++) {
[tmpArray addObject:[NSString stringWithFormat:@"cover_%d.jpg", i]];
}
for (int i = 0; i < 137; i++) {
int index = arc4random() % [tmpArray count];
NSString *imageName = [tmpArray objectAtIndex:index];
[tmpArray removeObjectAtIndex:index];
[(AFOpenFlowView *)self.view setImage:[UIImage imageNamed:imageName] forIndex:i];
}
내가 ARC로에서 iOS 5를 사용하고 있기 때문에 내가 수동 메모리 관리를 수행 할 필요가 없습니다 있지만, 메모리 문제가 있음을 추측하고있어.
도 메모리에 보관 될 가능성이 있습니까? @ 138 KB 당 138 이미지입니다. 대략 20MB이지만, 혼자서 문제가 발생할 수 있다고 생각하지 않습니다.
GDB는 유용한 출력없이 종료되며 실제로는 출력이 없습니다. 장비를 실행하면 일시 정지가 발생하면 실제 메모리 사용량은 6.11MB (77.4 % CPU)이지만 175MB (가상 메모리)가 소요됨을 알 수 있습니다.
나는 메모리 경고 또는 실제 충돌이 없다는 사실에 우려하고 있습니다. 스레드가 일시 중지되고 자동으로 다시 시작되거나 종료 될 수 없기 때문에 xcode 내에서 종료해야합니다.
또한 이러한 138 개의 이미지는 디스크의 압축 파일 크기 인 ~ 146KB보다 메모리에서 비 압축 비트 맵으로 더 많은 메모리를 차지할 것입니다. –