NSURLRequest нечетное поведение - PullRequest
1 голос
/ 26 сентября 2011

У меня такая странная проблема. Я использую 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. У кого-нибудь есть мысли, почему это может происходить и как я могу заставить его работать правильно?

1 Ответ

1 голос
/ 26 сентября 2011

Я просто добавляю это, чтобы проверить:

Мне трудно поверить в это, но, возможно, ваш 3G-оператор кеширует?Можете ли вы проверить журналы вашего сервера, чтобы узнать, принимаете ли вы фактические звонки с устройства?Если нет, попробуйте объединить случайное значение строки запроса в конце URL-адреса при каждом запросе, а затем снова проверьте журналы сервера.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...