【问题标题】:Problem calling a Local HTML File from XCode从 XCode 调用本地 HTML 文件的问题
【发布时间】:2011-07-19 19:55:25
【问题描述】:

这是我的 WebView 代码:

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

这是我的错误:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', 
reason: '*** -[NSURL initFileURLWithPath:isDirectory:]: nil string parameter'

有人可以帮忙吗?它说的是 nil 字符串,但 NSURL 字符串是 index.html

我唯一的想法是索引文件可能没有正确存储。它位于项目目录中 - 与 XCode 项目文件 xcodeproj 和 info.plist 相同的文件夹

【问题讨论】:

  • fileURLWithPath:isDirectory: 之间没有空格
  • 这没什么区别。我从教程中复制/粘贴了上面的代码。

标签: objective-c file uiwebview local


【解决方案1】:

URL 必须定义如何获取信息,而不仅仅是文件的名称。这意味着您必须指定完整的 URL,例如 http://www.something.com/index.html 或 file:///Users/Daniel/Sites/index.html。您指定的是 URI 而不是 URL

URL和URI的区别:http://www.damnhandy.com/2007/11/19/uri-vs-url-whats-the-difference/

NSURL 的 Apple 文档:http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSURLRequest_Class/Reference/Reference.html

【讨论】:

  • fileURLWithPath:isDirectory: 从路径中创建一个 URL。
  • 很好,我没有意识到这一点。谢谢。 +1
【解决方案2】:

检查文件是否已复制到您的应用程序包中。当[[NSBundle mainBundle] pathForResource:ofType:] 返回 nil 时,很可能包中没有同名的文件

在 Xcode3 中,右键单击侧栏中的“组和文件”标题并选择“目标成员资格”。确保 index.html 前面的复选框被选中。

【讨论】:

  • 未选中。谢啦。如果我在 web/index.html 中有文件,我该怎么做?它不接受pathForResource:@"web/index" ofType:@"html"]
猜你喜欢
  • 2012-02-18
  • 1970-01-01
  • 2021-02-06
  • 2011-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多