Я разрабатываю приложение для iPhone, которое использует библиотеку ASIHTTPRequest.Я застрял с кешем и загружаю данные.Когда я впервые открываю приложение, оно делает запрос, загружает и кэширует ответ JSON сервера.Если я внесу некоторые изменения в этот JSON, чтобы содержимое теперь изменилось, приложение должно было обнаружить, что есть новые изменения, и мое табличное представление должно быть загружено.Это не так, он загружает сохраненный кеш.Код:
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url2];
[[ASIDownloadCache sharedCache] setShouldRespectCacheControlHeaders:NO];
[request setDownloadCache:[ASIDownloadCache sharedCache]];
[request setCachePolicy:ASIAskServerIfModifiedCachePolicy|ASIFallbackToCacheIfLoadFailsCachePolicy];
[request setSecondsToCache:60*60*24*30]; // Cache for 30 days
[request setDidFailSelector:@selector(requestFailed:)];
[request setDidFinishSelector:@selector(requestFinished:)];
[request setDelegate:self]; // A delegate must be specified
[request startAsynchronous];
Я читаю учебное пособие ASIHTTPRequest, в котором говорится:
"ASIHTTPRequest может автоматически сохранять загруженные данные в кэш для последующего использования. Это может бытьполезно во многих ситуациях: "
Вы хотите загрузить что-либо, только если оно изменилось с момента последней загрузки.
ASIAskServerIfModifiedCachePolicy
Это то же самое, что и ASIAskServerIfModifiedWhenStaleCachePolicy, за исключением того, что запросы всегда будут спрашивать сервер, доступны ли обновленные данные.
Поэтому я думаю, что я использую правильные политики кэширования, но мое приложение не выполняет то, чтоЯ хочу.Мне интересно, что они имеют в виду, когда говорят: спросить у сервера, доступны ли обновленные данные ???Как я могу узнать, есть ли обновленные данные?С последним измененным ответом заголовка?Если это так, мой сервер правильно отправляет заголовок «Последние изменения» ...
Заранее спасибо!