3

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つの問題は、これが非常に優れたソリューションだと思いますか。

どんな助けでも大歓迎です:)

4

0 に答える 0