Я чувствовал, что у меня те же проблемы, что и здесь . Но все, что я пытаюсь, похоже, не работает.
Программа работает следующим образом:
- Я спрашиваю учетные данные пользователя (имя пользователя / пароль)
- Затем я делаю несколько звонков на сервер, загружая информацию.
- Когда он закончится, я показываю группу пользователей, пользователь нажимает на нее, а затем запрашивается пароль для этой учетной записи
- Затем я делаю еще один запрос к серверу и проверяю, получаю ли я верную информацию (следовательно, правильность только что введенного имени пользователя / пароля)
Проблема в том, что последний вызов похож (тот же URL, разные учетные данные) на тот, который я делаю при первоначальной загрузке. Независимо от того, что пользователь вводит для вторых учетных данных, «правильная» информация возвращается. Я думаю, что это потому, что он кэширует ответ, но я не могу понять, как не дать ему это сделать.
У меня есть класс, который устанавливает соединение и возвращает загруженные данные. И я делаю новый класс для каждого соединения. Так что я не совсем уверен, почему это сохранение данных.
У меня есть NSMutableURLRequest, в котором я делаю следующее:
[theRequest setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
(я тоже пробовал, NSURLRequestReloadRevalidatingCacheData
и NSURLRequestReloadIgnoringLocalAndRemoteCacheData
)
Я также реализовал функции:
- (NSCachedURLResponse *)connection:(NSURLConnection *)connection
willCacheResponse:(NSCachedURLResponse *)cachedResponse {
return nil;
}
- (BOOL)connectionShouldUseCredentialStorage:(NSURLConnection *)connection {
return NO;
}
С последним я не совсем понимаю. Так я устал ДА и НЕТ. И я пробовал различные политики кэширования NSURLRequest.
Любая помощь по моей проблеме была бы очень полезной. Спасибо.