У меня есть представление, содержащее подпредставление, которое, в свою очередь, содержит UIWebview.
подпредставление выделено и автоматически выпущено
theController = [[[viewContainer alloc] initWithNibName:@"viewContainer" bundle:[NSBundle mainBundle]] autorelease];
Контент для веб-просмотра загружается на ViewDidLoad в подпредставлении.
Я могу удалить это подпредставление без проблем - если приложение раньше не уходило в фоновый режим! Веб-просмотр содержит ссылку - когда пользователь нажимает на нее, приложение переходит в фоновый режим, и Safari открывает ссылку. Все идет нормально. Когда я возвращаюсь в приложение сейчас и пытаюсь удалить подпредставление, содержащее веб-представление, я получаю эту ошибку:
bool _WebTryThreadLock(bool), 0x7f3e970: Tried to obtain the web lock from a thread other than the main thread or the web thread. This may be a result of calling to UIKit from a secondary thread. Crashing now...
[редактировать]
Не нашел решения, просто обходной путь (спасибо Jumhyn за помощь!):
Я добавил NSNotification в подпредставление, которое содержит веб-представление.
Когда я получаю applicationDidBecomeActive-Notification, я просто снова использую тот же NSURLrequest, который я использую в viewDidLoadMethod, и перезагружаю содержимое веб-просмотра.
Теперь я могу безопасно удалить вид, не получив сообщение об ошибке ...
Очень странное поведение ...