У меня странная проблема. Вот установка:
- У меня есть NSOperationQueue, в который я добавляю объекты подкласса NSOperation. Они работают в сети с помощью метода NSURLConnection sendSynchronousRequest. Насколько я понимаю, это полностью асинхронные операции, поскольку это операции NSOperation, каждая из которых имеет свой собственный поток.
- Если я запускаю свое приложение БЕЗ каких-либо фоновых сетевых операций, загрузка URL-адреса в UIWebView будет работать нормально.
Если я запускаю свое приложение и выполняю некоторые фоновые сетевые операции, загрузка URL-адреса в UIWebView приводит к этой ошибке:
Домен ошибки = WebKitErrorDomain Code = 102 UserInfo = 0x1996d60 «Загрузка кадра прервана»
и любые последующие попытки загрузить UIWebView завершаются с той же ошибкой.
Есть ли какое-то странное взаимодействие между UIWebView и NSURLConnection, о котором мне нужно знать? Мой следующий шаг - заменить синхронные вызовы полностью асинхронной NSOperation, но это настолько странная ошибка, что я решил спросить у экспертов.
Я изолировал ошибку до метода NSURLConnection sendSynchronousRequest. Если я вызываю это из NSOperation, UIWebView ужасно ломается.
Ошибка 102 связана с некоторой ошибкой «Политика изменена» в WebKit, которая нигде плохо / не задокументирована.
У кого-нибудь есть идеи? Любая помощь приветствуется!
РЕДАКТИРОВАТЬ: Похоже, это какая-то проблема с файлами cookie. Любая причина, по которой UIWebView не загружается, если веб-сервер устанавливает cookie через фоновый HTTP-запрос?