我正在尝试保存通过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,另一个问题是你认为这是一个非常好的解决方案吗?
任何帮助将不胜感激:)