0

当我运行下面的代码时

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:]: nil string parameter'

但是 *chemin 在日志中被初始化为正确的值。

当然是一个菜鸟问题,谢谢你的帮助

4

3 回答 3

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];
于 2012-06-28T18:42:40.067 回答
0

可能是这样,chemin变量可能有正确的章节,但路径可能是错误的。因此,当您将错误的文件路径传递给它时,NSURL它会返回null哪个反过来会导致崩溃。

首先得到这样的绝对路径 -

NSString *path   = [[NSBundle mainBundle] pathForResource:@"chapter1" ofType:@"html"];
于 2012-06-28T18:42:59.017 回答
0

这似乎表明文件“chapitre0[whatever].html”不在您期望的位置。这可能是因为正在构建不正确的字符串,但这也可能只是意味着您的构建过程没有将文件粘贴在正确的位置或类似的地方。查看您的 NSLog 中指示的字符串,然后查看您构建的应用程序的 Resources 目录以确认该文件确实存在并且命名正确。

于 2012-06-28T18:48:25.453 回答