NSURLSessionDataTask в другом потоке уничтожает сеансовые куки из UIWebView
У меня довольно неприятная проблема с подклассом UIWebView, который поддерживает веб-сеанс пользователя с онлайн-сервером, который будет взаимодействовать с объектом сеанса, пока пользователь входит в определенную службу. Время от времени мое приложение запускает службу обновления данных в фоновом потоке с помощью GDC и использует NSURLSessionDataTask для выполнения внутренних запросов.
Работа фонового потока каким-то образом повреждает объект веб-сеанса, поддерживаемый UIWebView. В моем понимании это означает, что NSHTTPCookieStorage поврежден... Я точно не знаю этого.
Я думаю, что это поможет, если сеанс, поддерживаемый UIWebView, будет использоваться совместно с любым другим запросом, выполняемым NSURLSessionDataTask, работающим в любом другом потоке.
В прошлом я подавлял вызовы к работе NSURLSessionDataTask, когда сеанс UIWebView активен - но, похоже, что при некоторых обстоятельствах один из этих вызовов все еще выполняется.
Мой вопрос, однако: как я могу использовать то же пространство сеанса, которое используется UIWebView, с действиями NSURLSessionDataTask?
К сожалению, из-за сложности обеих реализаций я не могу предоставить пример кода...
1 ответ
В основном кажется, что зовет [NSURLSessionConfiguration defaultSessionConfiguration]
поскольку веб-сессия, используемая для NSURLSessionDataTask, разбивается на данные UIWebView … по крайней мере, тогда она будет повреждена и больше не будет использоваться.
С помощью [NSURLSessionConfiguration ephemeralSessionConfiguration]
вместо этого уловка и данные UIWebView остаются нетронутыми довольно хорошо.