2011-09-13 10 views
1

私のアプリは私のサーバーからxmlファイルを解析しますが、私は解析済みのxmlファイルとアプリケーションの次の起動を保存したい、コントローラは最初に保存されたXMLファイルをロードする必要があります。 XMLファイル上に存在した場合は、新しい要素を解析して再度格納する必要があります。解析されたxmlファイルをキャッシュまたは格納する方法は?

私は、雑誌、新聞アプリなどのアプリを指しています。この種のアプリを開くと、以前にダウンロードしたデータが読み込まれます。それでも、ロード後、データの更新を開始し、新しい更新を再度保存します。

どこから始めますか?あなたは何をお勧めしますか?

事前に感謝しますが...

答えて

2

あなたのXMLを永続化するために(Objective-CのラッパーFMDB https://github.com/ccgus/fmdbを使用)CoreDataやSQLiteにも使用することができます。その後、一意のIDが表示されるたびにデータベースを更新します。 XMLデータの仕方によって異なります。

0

実際には、ドキュメントディレクトリに格納するのはかなり簡単です。たとえば、次のように

NSData *data; //this is your xml file 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *docs = [paths objectAtIndex:0]; 
NSString *filename = [NSString stringWithFormat:@"test.xml"]; 
NSString *path = [docs stringByAppendingPathComponent:filename]; 
[data writeToFile:path atomically:YES]; 

は、後でそれを取得するために、あなたは上記のようなパスを取得することができますが、それを書くのではなく、ファイルを取得:

NSData *data = [NSData dataWithContentsOfFile:path]; 
+0

xmlを頻繁に更新して永続化したい場合、これはお勧めできません。 iOSデバイスのFlashには非常に多くの書き込みサイクルがあり、sqlite coredataはこの目的のためのものであり、高速です。 – ARC

+0

@ニキータ:フェアポイント。私は単純なデータ保存のためにこの方法で投稿していました。大規模なプロジェクトや、このファイルへの頻繁な読み込み/書き込みアクセスを必要とするプロジェクトでは、あなたの提案は間違いなく道のりです。 –

0

CoreDataやSQLiteのいずれかのトリックに

を行うことができます
関連する問題