2012-02-17 2 views
0

UIImageView의 이미지를 변경하여 애니메이션을 실행하려고합니다. 5 초짜리 애니메이션을 만들려면 24K의 약 200 이미지가 필요합니다. 모든 이미지를 NSArray에 메모리에로드 할 수 있지만 UIImageView의 UIImage를 전환 할 때 애니메이션을 시작할 때 - 약 60 개의 이미지 이후 메모리 경고가 표시되고 이미지 표시가 계속되면 응용 프로그램이 중단됩니다. .2000 이미지를로드 할 때 UIImage에 메모리 문제가 발생했습니다.

+0

ARC를 사용하고 있습니까? – Jumhyn

+0

일부 코드는 –

+0

2000 (제목) 또는 200 (이미지) 도움이 될 것입니다? – justin

답변

2

이미지 파일이 디스크의 24KB이기 때문에 그것이 차지하는 메모리의 양을 의미하지는 않습니다.

픽셀 당 1 바이트를 사용하는 이미지가 480x960 인 경우 압축 (예 : jpeg)으로 인해 파일 크기가 작을 수 있지만 앱의 메모리에있는 경우 크기는 450KB가됩니다 . 60을 곱하면 (메모리 경고를받는 지점) 약 27MB가 표시됩니다.

이미지가 더 크거나 색 농도가 심하면 메모리가 더 많이 소모됩니다. 나는 iOS가 22Mb를 기록 할 때 메모리 경고를주는 것을 일단 읽었을 것이라고 생각하지만, 다른 것들에 대해서도 앱에 할당 된 다른 메모리를 포함합니다.

단지 이미지가 배열에 이미지를로드하기 때문에 실제로 메모리에 이미지가로드되거나 실제로 필요할 때까지 이미지가 확장된다는 의미는 아닙니다.

이미지가 사용할 메모리의 양을 계산하려면 파일 크기를 보지 말고 대신 이미지 크기에서 처리하십시오.

관련 문제