NSURLConnectionメソッドを介して返されるさまざまなデータセットを保存しようとしています。
これは私のconnectionDidFinishLoadingメソッドであり、現在、各個別のロットのデータをパーサーに渡しています。サイドとして、NSURLMutableRequestキャッシュポリシーをNSURLRequestUseProtocolCachePolicyに設定していません
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
if ([methodName isEqualToString:@"GetRub"])
{
[engineResponses GetRub:receivedData];
}
else if ([methodName isEqualToString:@"GetMag"])
{
[engineResponses GetMag:receivedData];
}
else if ([methodName isEqualToString:@"GetSub"])
{
[engineResponses GetSub:receivedData];
}
}
要約:上記のメソッドは、要求されたデータセットを受信し、要求に応じて、そのデータをパーサークラスの正しいメソッドに渡します。
GetRub、GetMag、GetSub。
ここで試したいのは、NSURLCacheResponseメソッドを使用して、上記のようにデータをキャプチャしますが、キャッシュなどがあるかどうかを確認し、キャッシュされたデータをパーサーに渡します。これは通常は処理されます。上記の方法で。
以下は、キャッシュに対して試したものです。connectionDidFinishLoadingでデータを受信する代わりに、このメソッドで処理したいと思うので、キャッシュが整理されたら、このメソッド内からengineResponsesメソッドを呼び出そうとします。
- (NSCachedURLResponse *)connection:(NSURLConnection *)connection willCacheResponse:(NSCachedURLResponse *)cachedResponse
{
if ([methodName isEqualToString:@"GetRub"])
{
NSCachedURLResponse *ICRub = cachedResponse;
ICRub = nil;
NSDictionary *newUserInfo;
newUserInfo = [NSDictionary dictionaryWithObject:[NSDate date] forKey:@"Cached Date"];
ICRub = [[NSCachedURLResponse alloc] initWithResponse:[cachedResponse response] data:[cachedResponse data] userInfo:newUserInfo storagePolicy:[cachedResponse storagePolicy]];
}
//other caches below here.
それが私がやろうとしたことですが、現在は機能しておらず、この方法に到達することはありません。また、キャッシュされたデータをパーサークラスに送信する方法がわかりません。これらが私の主な問題です。もう1つの問題は、これが非常に優れたソリューションだと思いますか。
どんな助けでも大歓迎です:)