2010-11-29 14 views
2

私はiOS開発を初めて利用しています。ナビゲーションベースのアプリケーションにローカルHTMLファイルをロード

私は自分の質問に対する答えを見つけようとしていましたが、私はできませんでしたが、私はいくつかの関連する答えを見つけましたが、問題を解決できませんでした。

私の問題は、テーブルを持つアプリケーションを作ったことです。すべての行について、UIWebViewをロードするURLがあり、行をクリックするとロードする必要がありますが、 @ "http://www.google.com"としてしかし、私はそれがローカルのHTMLファイルをロードしたい。

私はURLのためにこれを使用しています

 azkarDetailViewController.detailURL= 
    [[NSURL alloc] initWithString: 
    [[[azkarData objectAtIndex:indexPath.section] objectAtIndex: 
    indexPath.row] objectForKey:@"url"]]; 

、テーブルのすべての行のために私が使用します。

[AZKAR addObject:[[NSMutableDictionary alloc] initWithObjectsAndKeys:@"THE NAME OF THE ROW",@"name",@"DayandNight.png",@"picture",@"http://www.google.com",@"url",nil]]; 

は、だから私は、アプリケーションが(リソースからローカルファイルをロードしたいですたとえば、HTMLファイルの名前が "index.html"であるとします)。

この問題を解決してもらえますか?

は、あなたのアプリケーションをコンパイルすると、出力はファイルやディレクトリの「バンドル」..です

答えて

1

ありがとうございました。実際には、NSBundleクラスを介してバンドルにアクセスできます。静的メソッド+ mainBundleは、あなたのアプリのメインバンドルを表すNSBundleのインスタンスへのポインタを返します。

-URLForResource:withExtension:subdirectoryの方法をNSBundle(これらにはiOS 4.0以上が必要です。より古いものもあります)。 HTMLファイルは、あなたのメインバンドルディレクトリに格納されている場合、あなたはそのURLこの方法を見つけることができます(それはあなたが実際のディレクトリ-異なるグループであなたのバンドルからを作成しない限り、ケースになります):

NSString *myDocumentName = @"index.html"; 
NSURL *documentURL = [[NSBundle mainBundle] URLForResource:myDocumentName extension:Nil]; 

拡張子がファイル名に既に含まれている場合は、拡張子を個別に指定する必要はありません。

注:私の説明は少し簡略化されています(私はあなたがローカリゼーションを扱う必要がないと仮定しています。そうでなければ、other issuesがドキュメントに説明されています)。

+0

お返事ありがとうございました。しかし、私が前に言ったように、私はiOSアプリケーション開発の初心者であり、私の最初のアプリであり、私は自分のアプリを作るための例に従っていた。あなたはもっと詳しく説明できますか?だから私は([NSString * myDocumentName .......)を置く必要がありますか? ( - (void)createAzkarData {NSMutableArray * AZKAR;)または他のメソッドの下に置くべきですか? – 3madi

+0

あなたが私に与えた行を追加した後、どのように([AZKAR addObject:[[NSMutableDictionary alloc] initWithObjectsAndKeys:@ "The NAME of the Row"、@ "name"、@ @ "http://www.google.com"、@ "url"、nil]];)...これらの質問に対してお詫び申し上げますが、本当にあなたの助けが必要です。 – 3madi

+0

私はあなたのための簡単な例をhttp://dl.dropbox.com/u/7437071/misc/URLLoader.zipに投稿しました。 URLLoaderViewControllerの-buttonClickedメソッドをチェックしてファイルの位置を確認し、それを使用してUIWebViewをナビゲートします。 –

1
#if __IPHONE_OS_VERSION_MIN_REQUIRED < 40000 
    // code for iOS below 4.0 
    NSURL *modelURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"WindowsTest" ofType:@"html"]]; 
#else 
    // code for iOS 4.0 ++ 
    NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"WindowsTest" withExtension:@"html"]; 
#endif 
関連する問題