2011-05-08 5 views
1

코드에서 UIImageView의 이미지를 변경할 때 이미지가 사라집니다. 이 문제는 iPod Touch 장치에서만 발생하며 iPhone 에뮬레이터에서는 발생하지 않습니다. 내 번들에서이미지를 변경할 때 UIImageView의 이미지가 사라짐

내가 SomeImage.PNG

NSString *path = [[NSBundle mainBundle] pathForResource:@"SomeImage" ofType:@"png"]; 
[self.background setImage:[[UIImage alloc] initWithContentsOfFile:path]]; 

내가 반복해야한다라는 이미지를 가지고, 이것은 아이팟 터치 장치에 아이폰 시뮬레이터에서 잘 작동하지만.

이미지 파일에는 대문자 확장자가 있지만 코드에는 소문자로 선언되어 있습니다. 이게 문제 야. 그래서 여기에 코드를 변경,이 문제를 해결하려면 :

NSString *path = [[NSBundle mainBundle] pathForResource:@"SomeImage" ofType:@"PNG"]; 
[self.background setImage:[[UIImage alloc] initWithContentsOfFile:path]]; 

을 내가 뭐하는 거지 할 수있는 '더 좋은'방법이 있는지 내가 부탁하고, 그래서 앞으로 이러한 문제를 건너하지 않습니다.

답변

1

아니요. 불행하게도 iOS 파일 시스템은 대소 문자를 구분합니다.

이런 식으로 뭔가 .....?

NSString *filename = @"SomeImage"; 
NSString *extension = @"png"; 
UIImage *img = nil; 
NSString *path = nil; 

path = [[NSBundle mainBundle] pathForResource:filename ofType:[extension lowercaseString]]; 
img = [[UIImage alloc] initWithContentsOfFile:path]; 

if (img == nil) { 
    path = [[NSBundle mainBundle] pathForResource:filename ofType:[extension uppercaseString]]; 
    img = [[UIImage alloc] initWithContentsOfFile:path]; 
} 
+0

좋은 답변이지만 장기간에 걸쳐 불필요한 코드 일 것입니다. 나는 내 교훈을 배웠다! – Rots

관련 문제