번들 넘어 경로 ..난 내 번들에없는 파일의 경로를 찾으려면
NSString *path = [[NSBundle allBundle] pathForResource:nm ofType:@"jpg" inDirectory:nil];
하지만이있는 NSArray가 응답하지 않을 수에서 경고를 .. 찾는
이있다 어떤 방법 으로든 다른 폴더에 파일의 경로를 찾을 수 있습니다.
번들 넘어 경로 ..난 내 번들에없는 파일의 경로를 찾으려면
NSString *path = [[NSBundle allBundle] pathForResource:nm ofType:@"jpg" inDirectory:nil];
하지만이있는 NSArray가 응답하지 않을 수에서 경고를 .. 찾는
이있다 어떤 방법 으로든 다른 폴더에 파일의 경로를 찾을 수 있습니다.
allBundle
은 모든 번들 중 NSArray을 반환합니다. 당신은 방법 mainBundle
을 사용하려고합니다.
리소스를 찾을 수없는 경우 찾고있는 리소스의 이름에 문제가있을 가능성이 큽니다 (nm의 값을 확인 했습니까?) 또한 아래의 대상을 확인하십시오. .jpg 파일이 여기에 나열된 "리소스 복사"섹션. 그렇지 않은 경우 파일을 빌드 할 때 번들에 복사되도록 파일을 드래그해야합니다.
당신이 정말로 당신의 리소스에 대한 사용 가능한 모든 번들을 검색하려면, 다음 수 allBundle
수익률로는 다음과 번들의 배열을 통해 루프 :
NSString* pathForResource = nil;
for (NSBundle currentBundle in [NSBundle allBundle])
{
pathForResource = [currentBundle pathForResource:nm ofType:@"jpg"];
if (pathForResource)
{
break; // Found resource, no longer need to search through bundles.
}
}
참고 : 당신은 또한 할 필요가 없습니다 메소드의 "inDirectory :"부분을 사용하십시오 (문서 참조).
하지만 메인 번들을 사용하면 내 번들 너머의 이미지를 찾을 수 없습니다. – rptwsthi
물론, NSBundle의 메소드에 NSArray가 응답하지 않습니다. 당신이해야 할 일은'for (... in ...) '루프를 사용하여 NSArray에 포함 된 NSBundle을 반복하고 각각에 대해 메소드를 호출하는 것입니다. –
Douwe의 의견을 반영한 답변을 편집했습니다! –
nm은 파일의 이름입니다. – rptwsthi