У меня такая странная проблема. Я использую iOS 4.3.2 на своем устройстве. Компилируем в Xcode 4, но я не использую iOS 5 beta SDK.
Мое приложение извлекает файл plist с сервера, файл plist представляет собой набор строк, которые я использую в своем приложении.
Я получаю данные через запрос и соединение вот так
NSURLRequest *req = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:pathAndFile]
cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:60.0];
NSURLConnection *con =[[NSURLConnection alloc] initWithRequest:req
delegate:self];
При работе по Wi-Fi - если я зайду и внесу изменения на стороне сервера, приложение увидит новые данные и будет использовать их при каждом запуске приложения.
Если я переключаю свой телефон на 3G, он уходит и правильно получает данные в ПЕРВЫЙ РАЗ. Если я затем вернусь и изменим файл на сервере и перезапущу приложение - это будет загрузка только старых данных, а не новых данных. Приложение выполняет код, где соединение установлено и загружено.
Хорошо, теперь я нахожусь в таком состоянии, когда приложение использует старые данные. Я переключаю телефон на Wi-Fi и BAM, новые данные есть.
Но если я сейчас закрою приложение. Выключить вайфай. Запустите приложение, приложение снова использует СТАРЫЕ ДАННЫЕ.
Я реализовал
- (NSCachedURLResponse *)connection:(NSURLConnection *)connection willCacheResponse:(NSCachedURLResponse *)cachedResponse {
return nil;
}
как предложено в другом потоке stackoverflow. У кого-нибудь есть мысли, почему это может происходить и как я могу заставить его работать правильно?