저는 한 번에 약 44kb의 JPEG를 메모리에 보관해야하는 응용 프로그램을 작성하고 있습니다. 응용 프로그램이 메모리 부족 경고를 발생시키기 전에 약 22 메가 바이트를 사용할 수 있다고 들었으므로이 작업을 수행 할 수 있어야합니다. 그러나, 일단 나는이 메시지가 콘솔에 진열 시작로드 메가 바이트 주위에 통과 : 그런 다음 다시 홈 화면으로 나를 덤프메가 바이트 이상의 이미지를로드하면 왜 내 iPhone의 메모리가 모두 소모됩니까?
Mon Jun 8 16:37:19 unknown configd[21] : kernel memory event (90), free: 374, active: 1736, inactive: 959, purgeable: 0, wired: 6260 Mon Jun 8 16:37:20 unknown configd[21] : kernel memory event (95), free: 363, active: 876, inactive: 492, purgeable: 0, wired: 6241 Mon Jun 8 16:37:20 unknown SpringBoard[22] : Memory level is critical (5%). No apps to kill. Will kill SpringBoard Mon Jun 8 16:37:24 unknown SpringBoard[22] : Jetsaming SpringBoard...
.
#define NUM_IMAGES 40
@interface MyClass : NSObject {
UIImageView* imageView;
UIImage* loadedImages[NUM_IMAGES];
}
- (void)initImages;
@property (nonatomic, retain) IBOutlet UIImageView* imageView;
@end
@implementation MyClass
@synthesize imageView;
- (void)initImages {
int i;
for (i = 0; i < NUM_IMAGES; i++) {
loadedImages[i] = [UIImage imageNamed:[NSString stringWithFormat:IMAGE_FORMAT, i+1]];
}
imageView.image = loadedImages[0];
}
@end
뭔가 거기에 내가 잘못 여기서 뭐 해요 :
저는 여기에 이미지를로드하는 데 사용하고 코드인가? iPhone 응용 프로그램은 실제로 1 메가 바이트의 메모리 만 사용할 수 있습니까?
감사합니다, 그것은 도왔다. 이미지를 변경하거나로드하는 동안 메모리에 전체 해상도 이미지의 JPEG 데이터를 저장하고 1/4 해상도 이미지를 표시하도록했습니다. 감사합니다. –