Я пытаюсь сохранить разные наборы данных, которые мне возвращаются с помощью методов 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.
Так вот, что я пытался сделать, но в настоящее время он не работает, он никогда не подходит к этому методу. Кроме того, я не знаю, как отправить кэшированные данные в мой класс синтаксического анализатора. Это мои основные проблемы, другая проблема, как вы думаете, это очень хорошее решение?
любая помощь будет принята с благодарностью:)