2017-09-28 18 views
1

에서 이미지 객체를 반환하지 : 있는 UIImage imageNamed는 아이폰 OS (11) 다음 코드는 <code>path</code>에서 이미지 개체를 반환 및 iOS (11)에 이전 작동

NSString *path = [anotherPath stringByAppendingPathComponent:file]; 
UIImage *image = [UIImage imageNamed:path]; 

그러나 아이폰 OS 11에서 image 반환 null. 이것은 iOS 11 버그입니까?

+1

** 경로 **가 올바르게 설정되어 있는지 확인 했습니까? 즉, 이와 같은 일을합니까? : 'NSLog (@ "path ='% @ '"경로);' – drewster

+0

네, 그게 이상한 이유입니다. 정확한 코드는 iOS 8에서는 작동하지만 iOS 11에서는 작동하지 않습니다. 두 버전 모두 정확히 동일한 경로를 볼 수 있습니다. – Hahnemann

답변

1

+[UIImage imageNamed:]은 경로가 아니라 파일명으로 기록됩니다. 경로에서 이미지를로드하려면 +[UIImage imageWithContentsOfFile:]을 사용하십시오.

여기 경로가 번들에서 중첩 된 폴더에 뭔가를 참조하는 경우

, 당신은 자원에 대한 경로를 NSBundle을 요청할 수 있습니다 다음 +[UIImage imageWithContentsOfFile:]에 그것을 전달합니다. 이것은 다음과 같을 것입니다.

NSString *path = [NSBundle.mainBundle pathForResource:@"foo" ofType:@"jpg" inDirectory:@"dir"]; 
UIImage *image = [UIImage imageWithContentsOfFile:path]; 
+0

이제는 더 혼란 스럽습니다. 'NSBundle.mainBundle pathForResource : @ "foo"ofType : @ "png"inDirectory : @ "dir"]'이미지를 iOS 8에 기록하지만 iOS 11 (!?)에 기록하지 마십시오. – Hahnemann

0

@drewster가 지적했듯이 경로가 잘못되었습니다. 나는 소문자 문자를 가지고있다. 그러나 iOS 8이 이것을 무시한 것으로 나타났습니다.