2012-03-16 9 views
0

這是我的代碼:嵌入式html文件 - 目錄是什麼?

-(void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    NSString *indexPath = [NSBundle pathForResource:@"iHelp" ofType:@"html" inDirectory:nil]; 
    [webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:indexPath]]]; 
} 

的應用程序崩潰,因爲「零」的目錄名稱是無效的(廢話!)。因此,對於嵌入的html文件,應該去那裏?

更新:發現「webView」沒有出口,雖然一個是在.h文件中定義的...將關閉此,因爲我相信這裏有一個答案。將重新提出一個新的問題:網點......謝謝大家!

回答

0

如果文件iHelp是在主束,你可以像這樣找回它的路徑:

NSString *indexPath = [[NSBundle mainBundle] pathForResource:@"iHelp" ofType:@"html"]; 
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:indexPath]]]; 

你也可以這樣做:

NSURL *indexURL = [[NSBundle mainBundle] URLForResource:@"iHelp" withExtension:@"html"]; 
[webView loadRequest:[NSURLRequest requestWithURL:indexURL]]; 
+0

第一次導致崩潰;第二個沒有崩潰,但得到一個白色的屏幕,沒有HTML顯示。 – SpokaneDude 2012-03-16 15:46:18

+1

你得到的錯誤是什麼?我認爲它一定是文件本身不存在。你如何以及在哪裏放置文件? – sch 2012-03-16 15:47:42

+1

@ spokane-dude - 這兩種方法都有效。我已經測試過它們。這必須是另一個問題,如文件未與應用程序捆綁在一起。 – sch 2012-03-16 15:52:41

0

如果它不是一個文件夾內引用,只是省略了這樣的說法:

[[NSBundle mainBundle] pathForResource:@"iHelp" ofType:@"html"]; 

你甚至可以直接進入網址:

[[NSBundle mainBundle] URLForResource:@"iHelp" withExtension:@"html"]; 
+0

1錯誤:沒有已知的類方法的選擇 'pathForResource:ofType:' 第二個錯誤:選擇沒有已知的類方法 'URLForResource:withExtension:' – SpokaneDude 2012-03-16 15:41:59

+0

對不起,我的錯應該是[一個NSBundle mainBundle]代替只是NSBundle] – borrrden 2012-03-16 15:43:00

0

刪除inDirectory:參數,因爲它將默認爲您當前的包。注意:這是一個實例方法。

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    NSBundle *bundle = [NSBundle mainBundle]; 
    NSString *indexPath = [bundle pathForResource:@"iHelp" ofType:@"html"]; 
    [webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:indexPath]]]; 
+0

不,它不會。類方法'pathForResource:ofType:'甚至不存在。代碼不會編譯。 – sch 2012-03-16 15:38:25

+0

正確的版本是OK :) – sch 2012-03-16 15:46:30