Подтвердить что ты не робот

UIWebView - сбой при отключении контроллера модального представления во время выполнения запроса

Эй, Я представляю modal view controller и загружаю веб-страницу на этом контроллере представления в UIWebView:

- (void)viewWillAppear:(BOOL)animated
{
     self.requestObj = [NSURLRequest requestWithURL:[NSURL URLWithString:[MPServerPrefs serverPrefs].url_of_sandwich]];
     [self.helpWebView loadRequest:self.requestObj];
}

Все работает нормально, если я загружаю веб-страницу, а затем отклоняю представление. Если я отклоняю представление во время загрузки запроса, я получаю этот стек:

#0  0x31a94466 in objc_msgSend
#1  0x35ebcb70 in -[UIWebView webView:identifierForInitialRequest:fromDataSource:]
#2  0x35ebc1c0 in -[UIWebViewWebViewDelegate webView:identifierForInitialRequest:fromDataSource:]
#3  0x36130d04 in __invoking___
#4  0x36130bd4 in -[NSInvocation invoke]
#5  0x36130730 in -[NSInvocation invokeWithTarget:]
#6  0x329fc2f4 in -[_WebSafeForwarder forwardInvocation:]

Я сделал некоторые поиски и не могу понять, что происходит. Есть идеи? Нужно ли отменять мой запрос при отключении контроллера вида?

Большое спасибо!

4b9b3361

Ответ 1

Глупо мне - вам просто нужно отменить запрос и удалить делегата!

[self.helpWebView setDelegate:nil];
[self.helpWebView stopLoading];

Ответ 2

Ваш запрос запущен в основном потоке. Выполняет ли запрос ваш пользовательский интерфейс? Если вам нужно дождаться завершения запроса до того, как остальная часть кода будет выполнена, вашему пользователю будет интересно узнать, что происходит, пока представление ожидает загрузки. Попробуйте запустить запрос в отдельном потоке.