을 해제하는 적절한 방법 두 가지 질문이 있습니다악기에 대해 질문을하고 내 코드에 문제를 발견 한 후 UIImageView에
1 : 내가 필요 정확히 할당 악기의 쇼 위의 코드는 (할당 된 메모리가 적은 이유 30MB보다 많음)
NSMutableArray* arrayOfImages = [[NSMutableArray alloc]initWithCapacity:30];
for (int i = 0; i <= 30; i++){
NSString* path = [[NSBundle mainBundle]pathForResource:[NSString stringWithFormat:@"picture%d",i] ofType:@"png"];
UIImage* img = [[UIImage alloc]initWithContentsOfFile:path];
[arrayOfImages addObject:img];
[img release];
}
imageView.animationImages = arrayOfImages;
[arrayOfImages release];
....
imageView.animationImages = nil;
[imageView release];
사실, 할당 된 메모리가 더 많습니다.
개발자 설명서 (메모리 관리)에 따르면 모든 것이 정확하다고 가정하지만 장치 프로그램에서는 일반적으로 메모리 부족으로 인해 충돌이 발생합니다. 물론, 이것은 전체 코드 아니지만, 문제는 definetely 여기에있다. (응용 프로그램에서이 애니메이션 5 UIImageViews은 그들 모두가 너무 많은 메모리를 사용합니다.)
편집 그래, 그것으로 어떻게 든 가능하다 그러한 문제를 해결하십시오. UIImages를 사용하여 메모리 문제가 있습니까?
방금 너무 많은 메모리를 할당 할 수 있습니까? 이미지는 많은 메모리를 차지합니다 ... 이미지의 크기가 얼마나 큽니까? – donkim
320x480 Png. 배경은 투명하며 내부의 실제 이미지 크기는 약 150x150입니다. 각 이미지는 약 8 바이트입니다. 예, 나는 [UIImage imageNamed :]와 비슷한 문제를 겪었습니다. 전혀 공개하지 않았고 심지어 AllocationsInstrument가 – 0xDE4E15B
을 보여주었습니다.이 두 이미지가 없다면 전혀 응용 프로그램을 시작할 수 없었습니다. 문제는 없습니다 ( – 0xDE4E15B