来自fileURLWithPath的Nil返回值

时间:2014-02-05 15:30:04

标签: objective-c xcode5 directory nsurl

我最近完成了一个app-project,主要由webView中的html文件组成。

现在我设置了另一个项目并复制了相关的代码片段,但应用程序因此错误消息崩溃了:

  

*由于未捕获的异常'NSInvalidArgumentException'而终止应用,原因:'* - [NSURL   initFileURLWithPath:]:nil字符串参数'

这是代码:

NSString *path01 = [[NSBundle mainBundle] pathForResource:@"01-a" ofType:@"html" inDirectory:@"htdocs"];
NSURL *url01 = [NSURL fileURLWithPath:path01];
NSURLRequest *request01 = [NSURLRequest requestWithURL:url01];
[webView01 loadRequest:request01];

我猜问题是文件引用,但一切都在它的位置,但结果总是NIL。

我已经搜索了这个问题,似乎我将文件导入xcode有什么问题,但是我无法修复它。是否有一个简单的技巧让xcode正确导入文件夹“htdocs”?

提前感谢...

2 个答案:

答案 0 :(得分:0)

确保将文件01-a.html复制到您的应用包中。这可以通过构建应用程序时复制文件/复制捆绑资源阶段来实现。崩溃表明捆绑包中缺少该文件,因此返回了nil值。在这种情况下你应该检查nil。

答案 1 :(得分:0)

NSURL *url01 = [NSURL fileURLWithPath:path01];

唯一的参数是path01,所以让我们看看它来自哪里

NSString *path01 = [[NSBundle mainBundle] pathForResource:@"01-a" ofType:@"html" inDirectory:@"htdocs"];

这意味着您的资源中没有文件htdocs/01-a.html

请注意,xcode会使资源结构变平,因此您可能只想删除inDirectory参数。