iOSダウンロード前にリモートファイルが更新をしているかどうかを確認してください

StackOverflow https://stackoverflow.com//questions/23014900

質問

これは二部の質問です。 NSXMLParserを使用してRSSフィードをダウンロードしています。

NSURL *url = [NSURL URLWithString:@"linktorssxml"];
parser = [[NSXMLParser alloc] initWithContentsOfURL:url];
[parser setDelegate:self];
[parser setShouldResolveExternalEntities:NO];
[parser parse];
.

リモートのヘッダーをリモートで読み取る方法があるかどうかは疑問に思って、最後の更新タイムスタンプをチェックして、パーサーコードを実行し、実際には変更があった場合にはXML全体を引いてください。

さらに、私が言ったように、これは二部の質問です。 外部からホストされているPlistと同じ考えを持っています。これは現在次のように呼び出されています。 -

_content = [[NSArray alloc] initWithContentsOfURL:[NSURL URLWithString:@"pathto.plist"]];
.

再び、最後の更新時間のヘッダーをリモートで確認する方法はあります。したがって、変更があった場合は完全なファイルをダウンロードするだけですか?

役に立ちましたか?

解決

はいですが、NSURLConnectionまたはNSURLSessionを使用して、NSXMLParserを求める代わりにデータをダウンロードする必要があります。

HTTPヘッダ(おそらく最後の変更日を含む)を取得して、必要なものを説明するためにNSMutableURLRequestを使用することで入手できます。これはsetHTTPMethod:という名前のメソッドを持ち、メソッドをHEADに設定できます。接続を行い、ヘッダーを取得し、次の方法を決定します。

XMLが非常に大きい場合は、おそらく最も効果的なアプローチではありません。ファイルが変更された場合は、入手するための2番目のネットワーク要求を実行する必要があります。ネットワーク要求は遅いので、それらを最小限に抑えるべきです。ほとんどの場合、ファイルを取得するだけで、NSURLConnectionまたはNSURLSessionを使用しているのが期限切れになるでしょう。応答にはHTTPヘッダーが含まれているため、まだ日付を取得し、まだパーサーを実行するかどうかを決めることができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top