2012-03-23 1 views
0

XMLファイルを取得するのにNSURLConnectionを使用しています。私はXMLファイルを解析し、それを使ってCore Dataを読み込みます。更新されたXMLのみをインポートします。

NSURLConnectionが接続に失敗した場合(つまり、ユーザーにインターネット接続がない場合)、Core Dataから永続データを読み込んだだけです。

しかし、私は考えています... XMLファイルを最後に使用したときに更新されたかどうか確認する方法はありますか?だから私はredownloading/repopulating保存することができます変更されていない場合は?

最終更新をファイルなどで確認していますか?

誰もがこのために良い解決策を持っていますか?

ありがとうございます!

+1

質問は、サーバー上のファイルの変更日をチェックするために間違ってタグ付けされています。サーバーがサポートしている場合は、ヘッドリクエストを送信してLast-Modifiedヘッダーを確認できます。 – Joe

+0

とにかくサンプルコードを提供できますか? – sayguh

答えて

1

これは、httpヘッダーまたはetagsをチェックすることによって実行できます。

+0

私はこれを行うサンプルコードをここで得ることができましたhttp://stackoverflow.com/questions/6895451/how-to-get-remote-file-modification-date – sayguh

0

サーバに現在のシステム時刻を<timestamp>1332368408</timestamp>のような新しいフィールドとしてXMLファイルに追加させます。 http://<server>/xmlFileChangedSince/1332368408のように特定のファイルが変更されているかどうかを確認するには、別のサーバーAPI呼び出しが必要です。提案されたファイルの最終変更に基づいてtrueまたはfalseが返されるか、ファイルが変更されるたびに<timestamp>フィールドが上書きされます。上記のhttpリクエストの結果がtrueの場合、あなたのアプリは新しく変更されたデータをダウンロードすることを知っています。

<timestamp>フィールドをサーバー側のXMLファイルに追加することのメリットは、正確には同期しないことが保証されているサーバーとアプリケーションの時刻を同期する必要がないことです。 XMLデータにフィールドを追加したくない場合は、NSURLConnectionが返されたときに基づいてアプリ側データのタイムスタンプを設定できますが、正確に信頼できるようにするには、アプリとサーバーを同期させる必要があります回。これは特に難しいことではありませんが、迷惑です。

関連する問題