2012-02-19 12 views
2

私は、オンラインサーバーからXMLを解析するアプリケーションを構築しています。 XMLファイルを24時間ローカルにキャッシュします。リソースディレクトリのファイルから読み込むために次のコードを変更するにはどうすればよいですか?URLの代わりにアプリケーションバンドルからXMLを解析する

parser = [[NSXMLParser alloc] initWithContentsOfURL: [NSURL URLWithString:url]]; 

答えて

4

次のようなXMLファイルのパスを取得することができます。

NSString* path = [[NSBundle mainBundle] pathForResource:@"yourxml" ofType:@"xml"]; 

し、次のようにNSDataのインスタンスを取得します。最後に

NSData *xmlData = [[NSMutableData alloc] initWithContentsOfFile:path]; 

とを呼び出す

initWithData方法NSXMLParser

アプリケーションバンドルの内容は変更できません。バンドル内のファイル(要求したリソースディレクトリ)は変更できません。

それを行うためのさまざまな方法があります。

  • ウェブからファイルを取得し、それを保存するプロパティリストファイルに
  • あなたのxmlファイルを保存し、読み取りに使用NSFileManagerクラス

NSFileManagerと例:

NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString* documentsDirectoryPath = [paths objectAtIndex:0]; 
NSString* filePath = [documentsDirectoryPath stringByAppendingPathComponent:@"yourxml.xml"]; 

スニペットは、DocumentsディレクトリにあるXMLファイルパスを取得します。そこには既にファイルがあることを意味します。詳細はNSFileManager classhow-to-save-your-app-data-with-nscoding-and-nsfilemanager

をご覧ください。

+0

多くの助けになりました!ありがとうございました。 – ebsp

関連する問題