1

ここで取り上げたのと同じ問題が発生しているように感じました。しかし、私が試したすべてがうまくいくようには見えません。

プログラムは次のようになります。

  • ユーザーの資格情報(ユーザー名/パスワード)を求めています
  • 次に、サーバーのダウンロード情報を呼び出します。
  • 終了したら、一連のユーザーを表示します。ユーザーが1つをクリックすると、そのアカウントのパスワードの入力を求められます。
  • 次に、サーバーに別のリクエストを送信し、正しい情報が返されるかどうかを確認します(したがって、指定されたユーザー名/パスワードが正しいことを確認します)

問題は、最後の呼び出しが最初のダウンロードで行った呼び出しと似ている(同じURL、異なるクレデンシャル)ことです。ユーザーが2番目のクレデンシャルに何を入力したかに関係なく、「正しい」情報が返されます。これは応答をキャッシュしているためだと思いますが、それを阻止する方法がわかりません。

接続を確立し、ダウンロードしたデータを返すクラスがあります。そして、接続ごとに新しいクラスを作成します。だから、なぜデータを保存するのかよくわかりません。

次のことを行うNSMutableURLRequestがあります。

 [theRequest setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];

(私も試しました、NSURLRequestReloadRevalidatingCacheDataそしてNSURLRequestReloadIgnoringLocalAndRemoteCacheData

また、関数を実装しました:

- (NSCachedURLResponse *)connection:(NSURLConnection *)connection   
                  willCacheResponse:(NSCachedURLResponse *)cachedResponse {
return nil;
}

- (BOOL)connectionShouldUseCredentialStorage:(NSURLConnection *)connection {
return NO;
}

最後のものでは、私はそれを完全には理解していません。だから私はYESとNOに疲れました。そして、私はさまざまなNSURLRequestキャッシュポリシーを試しました。

私の問題が何であるかについての助けは非常に役に立ちます。ありがとうございました。

4

1 に答える 1

2

推測ですが、

NSURLRequestReloadIgnoringLocalAndRemoteCacheData

それよりも

NSURLRequestReloadIgnoringLocalCacheData

何か違いがありますか?

于 2009-07-12T02:55:48.787 に答える