2012-06-28 4 views
0

내가함수에 문자열 var에 전달

NSString *chemin; 
    chemin = [NSString stringWithFormat:@"chapitre0%d", [sender tag]]; 
    NSLog(@"chemin : %@",chemin); 

    [detailChapitre loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:chemin ofType:@"html"]isDirectory:NO]]]; 

아래의 코드를 실행하면 내가 가지고 : 'NSInvalidArgumentException', 이유 : '*- [NSURL initFileURLWithPath : isDirectory :] : 무기 호 문자열 매개 변수'

하지만 * chemin은 로그에서 올바른 값으로 초기화됩니다.

은 물론 멍청한 놈 질문, 당신의 도움에 대한 들으

+1

여러 줄로 요청 구성을 제동하려고 시도하면 어떤 구성 요소가 실패했는지 확인할 수 있습니다. –

답변

0

이 그것을 할 수는 chemin 변수는 올바른 장을 가질 수 있지만 경로가 잘못 될 수 있습니다. 따라서 잘못된 파일 경로를 NSURL으로 전달하면 null이 반환되어 inturn이 충돌을 일으켰을 것입니다.

우선과 같이 절대 경로를 얻을 - 이것은 당신이있을 것으로 예상 어디에 파일 "chapitre0 [무엇이든] .html 중에서는"아님을 나타내는 것 같다

NSString *path = [[NSBundle mainBundle] pathForResource:@"chapter1" ofType:@"html"]; 
+0

이 반환하면 아무런 문제가 없습니다. 내 문제 여야합니다. 오늘 밤 (프랑스에서 자정) 그것을 풀 수는 없습니다. 내일 다시 돌아 가라. – Abzamon

+0

나는 그것이 옳다는 것이 기쁘다. 내 대답이 도움이된다면 upvote하십시오. –

+0

그건 잘못된 경로 였어! Thx 당신의 도움. 내 말을 믿을 수가 없어, 나는 아직도 투표권이없는 멍청한 놈이야. 고마워, 내가 할 수있는 최선이야. – Abzamon

0

시도는 chemin를 초기화 한 후 놓습니다. 같은 :

NSString *chemin; 
chemin = [[NSString alloc] initWithFormat:@"chapitre0%d", [sender tag]]; 
NSLog(@"chemin : %@",chemin); 

[detailChapitre loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:chemin ofType:@"html"]isDirectory:NO]]]; 
[chemin release]; 
0

. 잘못된 문자열이 생성되기 때문일 수 있지만 빌드 프로세스가 올바른 위치에 파일을 고정하지 못하는 것일 수도 있습니다. NSLog에 표시된 문자열을보고 빌드 된 응용 프로그램의 Resources 디렉토리를보고 파일이 실제로 있고 정확하게 이름을 붙 였는지 확인하십시오.