我最近完成了一个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”?
提前感谢...
答案 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
参数。