NSURLSessionDataTask в другом потоке уничтожает сеансовые куки из UIWebView

У меня довольно неприятная проблема с подклассом UIWebView, который поддерживает веб-сеанс пользователя с онлайн-сервером, который будет взаимодействовать с объектом сеанса, пока пользователь входит в определенную службу. Время от времени мое приложение запускает службу обновления данных в фоновом потоке с помощью GDC и использует NSURLSessionDataTask для выполнения внутренних запросов.

Работа фонового потока каким-то образом повреждает объект веб-сеанса, поддерживаемый UIWebView. В моем понимании это означает, что NSHTTPCookieStorage поврежден... Я точно не знаю этого.

Я думаю, что это поможет, если сеанс, поддерживаемый UIWebView, будет использоваться совместно с любым другим запросом, выполняемым NSURLSessionDataTask, работающим в любом другом потоке.

В прошлом я подавлял вызовы к работе NSURLSessionDataTask, когда сеанс UIWebView активен - но, похоже, что при некоторых обстоятельствах один из этих вызовов все еще выполняется.

Мой вопрос, однако: как я могу использовать то же пространство сеанса, которое используется UIWebView, с действиями NSURLSessionDataTask?

К сожалению, из-за сложности обеих реализаций я не могу предоставить пример кода...

1 ответ

В основном кажется, что зовет [NSURLSessionConfiguration defaultSessionConfiguration] поскольку веб-сессия, используемая для NSURLSessionDataTask, разбивается на данные UIWebView … по крайней мере, тогда она будет повреждена и больше не будет использоваться.

С помощью [NSURLSessionConfiguration ephemeralSessionConfiguration] вместо этого уловка и данные UIWebView остаются нетронутыми довольно хорошо.

Другие вопросы по тегам