[iOS] UIImage imageNamed

iOS 2011.08.09 18:38
크리에이티브 커먼즈 라이선스
Creative Commons License
아무 생각없이 잘 사용하고 있던 API중 하나가 바로 imageNamed 였습니다.

UIImage *image = [UIImage imageNamed:@"파일명"];


저 한줄이면 Low, High Resolution에 Localizing도 알아서 처리해주고, 코딩은 또 얼마나 짧고 편리합니까?
너무 좋은 놈이었지만 꼭 알고 넘어가야 하는 부분이 있었고 저는 몰랐습니다.
근래에 굉장히 많은 이미지를 사용해야하는 앱을 개발하다가 이유도 없이 앱이 Crash되는 현상을 겪고 나서야 알게되었습니다.


Discussion

This method looks in the system caches for an image object with the specified name and returns that object if it exists. If a matching image object is not already in the cache, this method loads the image data from the specified file, caches it, and then returns the resulting object.


시스템에 캐시 되네요. 자주 사용되는 이미지에 대한 IO성능 향상을 위한 것이 겠지요?
이걸 모르고 모든 이미지 로딩에 imageNamed를 사용했다가 몸이 고생했습니다.
무식하면 몸이 고생이라더니 ㅠㅠ

이미지 용량이 굉장히 크거나, 자주 사용되는 것이 아니라면 아래와 같은 방법으로 처리하는 것이 맞을 것 같습니다.
아래와 같이 사용해도 Low, High Resolution에 Localizing까지 한큐에 해결 됩니다.

UIImage *image = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"파일명" ofType:@"png"]];



추가적으로 고려 할 것은 인터페이스 빌더를 사용하는 경우입니다.
인터페이스 빌더에 UIImageView를 추가하고 이미지 파일을 설정하게 되면 내부적으로 imageNamed를 사용하여 로딩하게 된다는 군요.
이미지를 많이 사용하는 앱을 개발하신다면 꼭 고려하실 사항이라고 생각됩니다.

무엇보다보 중요한 것은 이미지의 사용 목적에 맞추어 선별적으로 API를 사용하는 것이 중요하겠군요.
저처럼 아무 생각없이 코딩 하시면 몸이 고생합니다 -:)
저작자 표시
신고

'iOS' 카테고리의 다른 글

MonkSWF  (0) 2011.12.22
[iOS] shouldAutorotateToInterfaceOrientation 호출이 안되는 경우  (0) 2011.09.26
[iOS] UIImage imageNamed  (1) 2011.08.09
[XCode4] Run "Attaching to YourAppName"  (0) 2011.06.09
[XCode4] build 디렉토리 설정  (0) 2011.05.20
[iOS] Custom Font  (0) 2011.05.19
Posted by 지오아빠^^






티스토리 툴바