我想在WebView中从Resources加载html文件。
资源中的我有:
的test.html
testfolder->的test.html
此代码完美无缺:
[[webview1 mainFrame] loadRequest:
[NSURLRequest requestWithURL:
[NSURL fileURLWithPath:
[[NSBundle mainBundle] pathForResource:@"test" ofType:@"html"]]]];
和这一个 - 崩溃应用程序(SIGABRT):
[[webview1 mainFrame] loadRequest:
[NSURLRequest requestWithURL:
[NSURL fileURLWithPath:
[[NSBundle mainBundle] pathForResource:@"test" ofType:@"html" inDirectory:@"testfolder" ]]]];
如何从文件夹中获取文件?
答案 0 :(得分:8)
您正在以正确的方式进行操作,这意味着您的文件/目录名称中存在拼写错误,或者“testfolder”目录未包含在您的应用程序包中。
确保“testfolder”作为文件夹(不是组)位于XCode项目的Resources部分中。
构建应用程序时,请查看“构建结果”窗口;你应该看到那里说“copy test.html”和“copy testfolder”的步骤。
请注意(在为模拟器构建时),您还可以直接检查应用程序包的内容 - 查看库/应用程序支持/ iPhone模拟器/用户/应用程序
答案 1 :(得分:1)
NSURL fileURLWithPath的文档:说
<强>参数强>
路径
NSURL对象将表示的路径。路径应该是有效的 系统路径。如果路径以a开头 代字号,首先必须扩展 stringByExpandingTildeInPath。
为此参数传递nil会产生异常。
和NSBundle pathForResource:ofType:inDirectory:
返回值
资源的完整路径名 文件或如果文件不能,则为nil 位于强>
可能是文件不在您指定的目录路径中吗?
答案 2 :(得分:1)
创建&#34;组&#34;在XCode中,不会在你的应用包中创建一个真实的目录。
您需要在项目中使用以下方法将目录导入应用程序&#34;测试&#34;:
点击&#34;添加&#34;
你做完了!
目录应显示为蓝色而不是黄色。
答案 3 :(得分:0)
您的代码看起来正确 您确定您的构建中包含 testfolder 文件夹吗?
如果没有,您对pathForResource:ofType:inDirectory:的调用将返回nil。 根据{{3}},为fileURLWithPath:class方法的参数传递nil会产生异常。
要检查您的文件夹是否包含在构建过程中,请展开“复制捆绑资源”构建阶段,然后查找您的文件夹。如果不存在,请将其拖放到其中。
检查您是否正确添加它的方法是导航到您构建的应用程序,右键单击它并选择“显示包内容”项。
答案 4 :(得分:0)
如果要从目录加载,首先必须使用create directory references将目录添加到项目中(以便在Copy Bundle Resources中获得带有主文件夹名称和的蓝色图标不是单个文件!)
根本不要使用in directory参数。只需使用斜杠(“/”)的全局路径,而不是像Windows一样使用反斜杠(“\”)。