iPhone dev:从资源文件夹加载文件

tho*_*max 19 iphone directory resources relative-path uiwebview

我正在编写一个带有UIWebView的iPhone应用程序,它应该显示我在app资源文件夹中的各种html文件.在xcode我的项目概述中,这些html文件显示如下:

dirA
|---> index.html 
|---> a1.html
|---> a2.html
|---> my.css
|---> dirB
      |---> b1.html
      |---> b2.html
|---> dirC
      |---> c1.html
      |---> c2.html
Run Code Online (Sandbox Code Playgroud)

这些资源如此添加到项目中:

  • 选中"将项目复制到目标组文件夹(如果需要)".
  • 参考类型:默认.
  • 文本编码:Unicode(utf-8).
  • 为任何添加的文件夹递归创建组.

我的html中的链接是相对的,这意味着它们看起来像这样:

<a href="a1.html">a1</a>
<a href="a2.html">a2</a>
<a href="dirB/b2.html">b2</a>
<a href="dirC/c1.html">c1</a>
Run Code Online (Sandbox Code Playgroud)

为了在应用启动时显示index.html,我使用以下代码:

NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
NSURL *url = [NSURL fileURLWithPath:path];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];
Run Code Online (Sandbox Code Playgroud)

这很好用.索引文件中的以下链接也可以正常工作,只要请求的html文件直接在dirA下.如果后面的链接指向子目录中的文件,那么didFailLoadWithError将捕获该情况并报告所请求的文件不存在.

也,

[webView loadHtmlString:myHtml];
Run Code Online (Sandbox Code Playgroud)

不能成为解决方案的一部分,因为我需要后退和前进按钮才能在我的Web视图中工作.

所以问题是:如何在资源中的子目录中跟踪html文件的相对链接?

我已经遍布计算器和管在过去几天试图找出这一个的其余部分,但无处有我遇到解决这个确切的问题.任何见解都将非常非常感谢!

编辑: Yoohoo!我想到了!什么快乐!这是我做的:

  1. 重新导入我的资源,选择"为任何添加的文件夹创建文件夹引用"而不是"为任何添加的文件夹递归创建组".
  2. 指定资源的根目录,如下所示: NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html" inDirectory:@"dirA"];

zap*_*aph 13

要在应用程序包中创建文件夹,请将文件夹拖到Xcode并选择单选按钮:"为任何添加的文件夹创建文件夹引用".