У меня возникают некоторые странные проблемы с NSHTTPCookieStorage в моем приложении для iPhone. Когда я вызываю действие входа в мою веб-службу, служба отправляет обратно файл cookie с именем «auth», а также некоторые другие файлы cookie.Почему NSHTTPCookieStorage не сохраняет файлы cookie?
Когда я регистрирую пользователя, я вызываю действие выхода на сервер, который удаляет файлы cookie. Если я печатаю результат [cookie NSHTTPCookieStorage] перед вызовом выхода из системы, я вижу файл cookie, как и ожидалось. После того, как я выхожу из системы, я вижу, что auth cookie больше не существует (как и ожидалось).
Однако, если я закрою приложение и перезагрузите его, файл cookie auth вернется!
Я не уверен, что здесь происходит. Одно дело, если NSHTTPCookieStorage просто не сохранял файлы cookie, но, похоже, некоторые из них сохраняют.
Кто-нибудь знает, что происходит? Мне нужно управлять файлами вручную? Есть ли способ зафиксировать то, что находится в NSHTTPCookieStorage на диске?
Я также вижу связанное поведение, когда я получаю cookie из веб-запроса, подтверждаю его существование, а затем закрываю приложение через несколько секунд (и удаляю его из фонового лотка), cookie не существует когда я запускаю приложение. Однако это непротиворечиво. –
Абрагинский: К сожалению, это то, что я тоже видел. Я решил проблему, сохранив соответствующие файлы cookie в NSUserDefaults и заполнив NSHTTPURLCookieStorage из пользовательских настроек по умолчанию при запуске приложения. Он выполняет свою работу, но было бы неплохо выяснить, что случилось с NSHTTPCookieStorage. – Bill
Да, я видел то же обходное решение, и в настоящее время я работаю над его внедрением. Необходимо убедиться, что NSUserDefault обновляется с помощью файлов cookie достаточно быстро, прежде чем пользователь прекратит приложение из фонового лотка. Ввод его в «завершение» не будет работать, поскольку он не вызывается (по крайней мере, в симуляторе). –