我发现了一些类似的问题,但我的情况略有不同。
我在Xcode资源中加载了2个html文档。一个叫做testpage.html,另一个叫index.html。我有一个uiwebview。
testpage.html是一个非常简单的页面,只有几个标题。当我在iPad上模拟应用程序时,这个工作正常。
index.html很复杂,有一堆js文件(尚未加载到资源中)。如果我尝试运行此页面,它会给出错误:'NSInvalidArgumentException',原因:' * - [NSURL initFileURLWithPath:]:nil string parameter'。无论我在iPad还是模拟器上运行应用程序,都会出现此错误。
我用来给NSUrl的代码只是:
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"testpage" ofType:@"html" inDirectory:@"www"]];
我只是将“testpage”更改为“index”,然后我收到此错误。
然后,我尝试复制index.html中的所有代码,然后将其粘贴到testpage.html(替换所有代码),并运行该代码,并将url设置为testpage.html。它给了我同样的错误。这很有启发性,因为它表明资源没有问题。换句话说,并不是index.html实际上并不存在于资源或其他东西中,因为testpage.html确实存在于那里它只是取决于实际文档中的代码。
那么,我把testpage.html放回原来的状态,再次运行它,它仍然给了我同样的错误!
除非我在iPad模拟器中运行它,否则它可以正常工作。
似乎iPad保留了testpage.html或其他东西的代码,有时当我从iPad删除我的应用程序时,它会删除代码并再次运行,然后它将成功运行testpage.html。 ..但是由于某种原因,每次都不起作用。
关于我为什么会收到此错误以及为什么它无法在iPad上运行的任何想法?一种可能性 - 将hrefs转换为js文档,我还没有加载到资源中,或者我还没有完全设置自定义字体,停止运行代码?看起来它不会给我这个奇怪的'nil string parameter'错误,但是......