내 앱에 디렉토리와 파일이 많이 있습니다 (예 : images/misc/mainmenu_background.
). 나는 "아이 패드 시뮬레이터 3.2"에 다음 코드를 실행 해요 :NSBundle pathForResource는 하위 디렉토리로 nil을 반환합니다.
NSString *images = [[NSBundle mainBundle] pathForResource:@"images" ofType:nil];
NSString *images_misc = [[NSBundle mainBundle] pathForResource:@"images/misc" ofType:nil];
NSString *images_misc_file = [[NSBundle mainBundle] pathForResource:@"images/misc/mainmenu_background.png" ofType:nil];
이 호출 한 후, images
경로 /Users/wic/Library/Application Support/iPhone Simulator/3.2/Applications/8F67150B-71E6-4735-8CC6-38B3CE6D3568/Foo.app/images
가 포함되어 있습니다.
그러나 images_misc
및 images_misc_file
은 nil
입니다. 파일 시스템에 파일이 있는지 다시 확인하십시오.
$ ls -l "/Users/wic/Library/Application Support/iPhone Simulator/3.2/Applications/8F67150B-71E6-4735-8CC6-38B3CE6D3568/Foo.app/images/misc/mainmenu_background.png"
-rw-rw-rw- 1 wic staff 30307 16 Feb 21:09 /Users/wic/Library/Application Support/iPhone Simulator/3.2/Applications/8F67150B-71E6-4735-8CC6-38B3CE6D3568/Foo.app/images/misc/mainmenu_background.png
분명히 파일이 있습니다.
"iPad Simulator 4.0"으로 전환하거나 다른 시뮬레이터 버전을 사용하면 모든 것이 예상대로 작동합니다.
설정에 이상이 있습니까? 아니면 iPad 3.2에서 NSBundle
의 올바른 동작입니까? 불행히도 실제 실제 iPad를 테스트하지 않았습니다.
감사합니다. 'inDirectory'를 사용하면 효과가있는 것 같습니다. 하지만 이것은 이후 버전에서 작동하는 것처럼 동작이 (자동으로) 변경되었음을 의미합니다. 맞습니까? –
"pathForResource :"매개 변수에 주어진 전체 경로를 처리하는 방법을 변경 한 것처럼 들리지만 4.0 이상 만 지원하는 경우에도 API를 올바르게 사용하고 모든 디렉토리에 대해 'inDirectory :'매개 변수를 사용하는 것이 좋습니다 . –
기록을 위해, 그것은 그것을 사용하는 프레임 워크입니다. 이상하게도 사과는 어떤 행동으로도이 행동을 바 꾸었습니다. –