我正在尝试保存通过我的 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.
所以这就是我试图做的,但目前它不起作用,它从来没有达到这种方法。另外我不知道如何将缓存的数据发送到我的解析器类.. 这些是我的主要问题 atm,另一个问题是你认为这是一个很好的解决方案吗?
任何帮助将不胜感激 :)