10

NSURLに接続していますが、すべてのキャッシュポリシーをバイパスするリクエストを作成する必要があります。私は次のような例を見てきました:

NSURLRequest *request = [NSURLRequest requestWithURL:baseURL cachePolicy:0 timeoutInterval:10];
self.urlConnection = [[[NSURLConnection alloc] initWithRequest:request delegate:self] autorelease];

キャッシュポリシー0は何を指しているのでしょうか?数字が何を表しているのか検索してみましたが、必要な答えが得られません。ありがとう!:)

4

3 に答える 3

8

NSURLRequestCachePolicy enumを確認する必要があります。ここで 0 は NSURLRequestUseProtocolCachePolicy を意味し、NSURLRequest が毎回サーバーからデータをロードしないことを意味します。

enum
{
   NSURLRequestUseProtocolCachePolicy = 0,
   NSURLRequestReloadIgnoringLocalCacheData = 1,
   NSURLRequestReloadIgnoringLocalAndRemoteCacheData =4,
   NSURLRequestReloadIgnoringCacheData = NSURLRequestReloadIgnoringLocalCacheData,
   NSURLRequestReturnCacheDataElseLoad = 2,
   NSURLRequestReturnCacheDataDontLoad = 3,
   NSURLRequestReloadRevalidatingCacheData = 5
};
typedef NSUInteger NSURLRequestCachePolicy
于 2012-09-12T06:07:30.510 に答える
2

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSURLRequest_Class/Reference/Reference.html

NSURLRequestUseProtocolCachePolicy = 0

プロトコル実装で定義されたキャッシングロジックが存在する場合は、特定のURLロード要求に使用されることを指定します。これは、URLロード要求のデフォルトのポリシーです。

例:HTTPを使用する場合、HTTPヘッダーフィールドが評価され、キャッシュを使用するかどうかが決定されます。

あなたの場合の正しい方針は次のとおりです。

NSURLRequestReloadIgnoringLocalCacheData

于 2012-09-12T06:06:06.783 に答える