2011-03-30 4 views
0

번들 넘어 경로 ..난 내 번들에없는 파일의 경로를 찾으려면

NSString *path = [[NSBundle allBundle] pathForResource:nm ofType:@"jpg" inDirectory:nil]; 

하지만이있는 NSArray가 응답하지 않을 수에서 경고를 .. 찾는

이있다 어떤 방법 으로든 다른 폴더에 파일의 경로를 찾을 수 있습니다.

+0

nm은 파일의 이름입니다. – rptwsthi

답변

1

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 :"부분을 사용하십시오 (문서 참조).

+0

하지만 메인 번들을 사용하면 내 번들 너머의 이미지를 찾을 수 없습니다. – rptwsthi

+1

물론, NSBundle의 메소드에 NSArray가 응답하지 않습니다. 당신이해야 할 일은'for (... in ...) '루프를 사용하여 NSArray에 포함 된 NSBundle을 반복하고 각각에 대해 메소드를 호출하는 것입니다. –

+0

Douwe의 의견을 반영한 답변을 편집했습니다! –

관련 문제