Сбой (SIGABRT) при добавлении представления. (WebView)
У меня происходит сбой (вызванный исключением) при добавлении WebView. Я не понял почему. И да, я просматривал Интернет, потому что это очень распространенная проблема, но безуспешно, но я нашел ответ, что я должен внедрить DSYM для правильного отслеживания стека, потому что смотреть на все эти адреса просто бессмысленно (и я согласен) Дело в том, что я понятия не имею, как это сделать. Я нашел это: сохранить файлы Dsym. Но я не понял, как интегрировать его в свой проект, к тому же это выглядит опасно. И да, я тоже включил NSZombie, но безрезультатно.
Во всяком случае, сейчас на мой вопрос. У меня есть кнопка, которая запускает событие, событие меняет строку (URL) в соответствии с нажатой кнопкой. Затем этот IBAction вызывает делегата, и делегат выполняет переход к представлению, имеющему UIWebView, который открывается с URL-адресом, отредактированным IBAction. Итак, у меня есть следующий код:
Это метод делегата:
WebViewController *awebViewController = [[WebViewController alloc]
initWithNibName:@"WebView" bundle:nil];
[self setWebViewController:awebViewController];
[awebViewController release];
self.webViewController.finalURL = [NSMutableString stringWithFormat:@"%@", linkString];
[viewController.view removeFromSuperview];
// HERE happens the crash, found out using breakpoints
[self.window addSubview:[webViewController view]];
[UIView commitAnimations];
[viewController release];
viewController = nil;
Это точное сообщение о сбое:
-[WebView initWithCoder:]: unrecognized selector sent to instance 0x5718320
*** Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: '[WebView initWithCoder:]: unrecognized selector sent to instance 0x5718320'
У меня есть теория, что он пытается сделать переход, но нет никакого реального представления, чтобы добавить. Хотя это дикое предположение. Исключения обычно называют такими вещами, но в этом случае я не вижу, что происходит.
Спасибо за вашу помощь, и простите меня, если это слишком глупый вопрос.
3 ответа
Предположение с моей стороны:
Есть ли у вас представление в вашем кончике, которое должно быть UIWebView, но вы изменили класс этого представления на WebView?
Вы должны сначала проверить это в конструкторе интерфейса.
Это исключение именно то, что происходит, если вы измените класс элемента представления на класс, который недоступен.
Точная ошибка в том, что какой-то экземпляр класса называется WebView
(не UIWebView
) по адресу памяти 0x5718320
отправляется сообщение -initWithCoder:
, который он не распознает. Это сообщение вызывается при загрузке представлений, созданных с помощью Interface Builder; проверьте ваши перья для просмотра, который вы изменили на пользовательский WebView
учебный класс.
У меня была та же проблема, и я переименовал класс WebView в WebViewCustom с помощью функции рефрактора / переименования XCode, очистил проект, и теперь он работает нормально.