2014-02-05 68 views
0

我最近完成了一個應用程序項目,主要由webView中的html文件組成。無返回值fileURLWithPath

現在我成立了另一個項目,並複製相關的代碼片段,但應用程序崩潰與此錯誤消息:

*終止應用程序由於未捕獲的異常「NSInvalidArgumentException」,原因是:「* - [NSURL initFileURLWithPath:]:無字符串參數」

這是代碼:

NSString *path01 = [[NSBundle mainBundle] pathForResource:@"01-a" ofType:@"html" inDirectory:@"htdocs"]; 
NSURL *url01 = [NSURL fileURLWithPath:path01]; 
NSURLRequest *request01 = [NSURLRequest requestWithURL:url01]; 
[webView01 loadRequest:request01]; 

我想問題是文件引用,但一切都在它的位置,但結果總是爲零。

我已經找到了問題,似乎有什麼問題,我如何將文件導入xcode,但我無法修復它。是否有一個簡單的竅門讓xcode正確導入文件夾「htdocs」?

在此先感謝...

+0

Xcode不返回任何東西;它是一個IDE,而不是一種方法。這與Xcode無關。 – 2014-02-05 15:31:54

+0

[相關](http://stackoverflow.com/questions/6263289/accesing-a-file-using-nsbundle-mainbundle-pathforresource-oftypeindirectory)? – glasz

+0

是的,對,但由於問題發生在xcode中,並且xcode中的引用明顯有問題,所以標記是正確的。 – brunnenschwimmer

回答

0

確保將文件01-a.html複製到您的應用程序包。這可以通過構建應用程序時的複製文件/複製捆綁資源階段來實現。崩潰表示文件從包中丟失,因此返回一個零值。在這種情況下,你應該檢查零。

+1

哎呀,它的工作。謝謝。但我仍然不明白髮生了什麼事,因爲我之前完全一樣(至少2次)。 – brunnenschwimmer

+0

也許乾淨的構建會幫助那麼。有時巫術會發生。 – Volker

0
NSURL *url01 = [NSURL fileURLWithPath:path01]; 

的唯一參數是path01,讓我們看到的是來自

NSString *path01 = [[NSBundle mainBundle] pathForResource:@"01-a" ofType:@"html" inDirectory:@"htdocs"]; 

這意味着你沒有一個文件htdocs/01-a.html在你的資源。

請注意,xcode使資源結構變平,所以您可能只想放棄inDirectory參數。

+0

謝謝,導入目錄時有一些混淆,它沒有被複制到包中。現在它工作得很好。 – brunnenschwimmer