2012-06-28 52 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已初始化为日志中的正确值。

当然,一个noob问题, THX对您有所帮助

+1

尝试制动请求的建设成多行,看看哪个方面的建设失败 –

回答

0

这可能是吧,chemin变量可能有正确的章节,但是路径可能是错误的。所以,当你通过错误的文件路径NSURL它将返回null这将导致崩溃。

首先得到绝对路径,像这样 -

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

这返回一个零,这一定是我的问题。今晚不能解决它(法国近乎午夜)。明天回来 – Abzamon

+0

很酷,很高兴我说得对。如果我的回答有帮助,请加注。 –

+0

就是这样,错误的路径! Thx为您提供帮助。不能upvote你,我仍然是noob无权投票。谢谢你是我能做的最好的。 – 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

这似乎表明该文件“chapitre0 [无论]的.html”是不是你希望它是。这可能是因为正在构建不正确的字符串,但它也可能意味着您的构建过程不会将文件粘贴到正确的位置或类似的位置。查看NSLog中指定的字符串,然后查看已构建的应用程序的资源目录以确认该文件确实存在并正确命名。