Posted
Filed under iphone
요즘 이미지 가지고 작업할 일이 많아져서 많이 사용하는 클래스 중 하나인 UIImage에 관한 내용이다.
외부 이미지 파일을 가져다 쓰기 위해 UIImage의 static메소드인 [UIImage imageNamed:(NSString*)name]; 을 사용하면 매우 편리하다. 하지만 이 함수는 사용하지 않는것이 좋다.
이 스태틱함수는 UIImage의 포인터를 바로 리턴해 우리가 alloc해줄 필요가 없는 동시에 release해줄 수도 없다.
그래서 데스크톱이나 노트북같이 메모리가 많지 않은 아이폰에서는 메모리 낭비가 생길 수 있다.
그래서 다소 불편하더라도 우리가 직접 alloc 해주고 full path를 명시해줘야 하는 멤버함수인 initWithContentOfFile을 이용해서 이미지를 불러오도록 하자.
아래와 같이 사용하면 된다.
[원문 : http://chirow.tistory.com/206]

//외부 이미지 불러 오기
[[UIImage alloc] initWithContentsOfFile:[NSString stringWithFormat:@"%@/filename.png", [[NSBundle mainBundle] bundlePath], i]];

간단한 방법으로 웹의 데이터를 긁어올 수 있습니다.
아래의 방법은 이미지가 아닌 다른 파일들에도 유효합니다.
NSString *stringURL = @"http://naver.com/image1"; //존재하지 않는 URL 입니다만...
NSURL *url = [NSURL urlWithString:stringURL];
NSData *data = [NSData dataWithContentOfURL:url];
UIImage *image = [UIImage imageWithContentData:data];
// 위와 같이 하는게 가장 간단하더군요....
UIImage *image = [UIImage imageWithContentOfURL:url];
로 하셔도 됩니다.
2011/06/20 22:44 2011/06/20 22:44