2012-03-16 6 views
0

これは私のコードです:埋め込みhtmlファイル - ディレクトリとは何ですか?

-(void)viewDidLoad 
{ 
    [super viewDidLoad]; 

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

ディレクトリ名は 'nilで'(DUH!)が無効であるため、アプリがクラッシュします。だから埋め込まれた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

第1の原因クラッシュ; 2番目にクラッシュはありませんが、白い画面が表示され、HTMLは表示されません。 – SpokaneDude

+1

エラーは何ですか?私はそれがファイル自体が存在しないことでなければならないと思う。どのようにファイルを置いたのですか? – sch

+1

@ spokane-dude - 両方の方法が機能します。私はそれらをテストしました。これは、アプリケーションにバンドルされていないファイルのような別の問題でなければなりません。 – sch

0

それはフォルダの参照内にない場合は、単にその引数を省略:

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

あなたもURLにまっすぐに行くことができます:

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

第一のエラー:知られていないクラスメソッドセレクタのための 'pathForResource:ofType:' 第二のエラー:選択のための知られていないクラスメソッド 'URLForResource:withExtension:' – SpokaneDude

+0

申し訳ありませんが、私のミスがなければなりません[NSBundle mainBundle]の代わりにちょうどNSBundleの] – borrrden

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

+0

修正されたバージョンはokです:) – sch

関連する問題