프로젝트 내의 이미지를 불러오기 위한 방법으로 UIImage 클래스의 imageNamed 메소드를 많이 쓴다.
(책에 그렇게 많이들 나와 있다. )
하지만, imageNamed 라는 메소드는 시스템에서 캐싱을 하는 바람에, 사용후에 메모리에서 해제되지 않는다.
자주쓰는 이미지라면 상관 없지만, 용량이 크고, 한번쓰고 마는 이미지라면 메모리 관리에 악영향을 끼치게 된다. 대표적인 앱이 이미지뷰어 앱을 들 수 있다.
UIImage *temp_img = [UIImage imageNamed:@"temp.png"];
반면에, imageWithContentsOfFile 라는 메소드는 캐싱을 하지 않는다. 캐싱을 하지 않아서 속도면에서는 불이익이 있지만, 사용후 해제가 되므로 메모리 관리 부분에서는 장점이 있다.
NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"temp.png" ofType:nil]; UIImage *temp_img =[UIImage imageWithContentsOfFile:imagePath];
'개발&팁 > Mac & Cocoa & iPhone' 카테고리의 다른 글
CGContextTranslateCTM 와 CGContextScaleCTM 의 이해. (5) | 2010.10.13 |
---|---|
iOS 3.0 과 4.0 에서의 이미지 불러오기. (0) | 2010.09.07 |
xcode 환경에서 디버깅 로그함수 편리하게 관리하기 (1) | 2010.04.09 |
iPhone Simulator 에서 개발할때 등록된 어플의 실제 로컬위치. (0) | 2009.11.28 |
아이폰 앱 개발기 - 개발자 프로그램 등록 & 기기 등록 (21) | 2009.02.11 |