添加视图时崩溃(SIGABRT)。 (web视图)

时间:2011-02-17 14:25:12

标签: iphone objective-c exception uiviewcontroller sigabrt

我在添加WebView时遇到崩溃(由异常触发)。我还没弄清楚原因。是的,我浏览过网络,因为这是一个非常常见的问题,虽然没有成功,我找到了一个答案,说我应该实现DSYM来正确跟踪堆栈,因为查看所有这些地址是没有意义的(我同意) ,事情是我不知道如何做到这一点。我发现了这个:save dsym files.但我并没有弄清楚如何将它整合到我的项目中,除了它看起来很危险。是的,我也启用了NSZombie,但无济于事。

无论如何现在到了我的问题。我有一个触发事件的按钮,事件根据按下的按钮更改字符串(URL)。然后,此IBAction调用委托,并且委托转换到具有UIWebView的视图,该UIWebView将使用IBAction编辑的URL打开。所以我有以下代码:

这是Delegate方法:

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 个答案:

答案 0 :(得分:4)

我的猜测:

你的nib中是否有一个应该是UIWebView的视图,但你将该视图的类更改为WebView?

您应首先在界面构建器中进行检查 如果将视图元素的类更改为不可用的类,则会发生此异常。

答案 1 :(得分:2)

确切的错误是内存地址WebView上名为UIWebView not 0x5718320}的类的某个实例正在发送消息{{1它无法识别。加载使用Interface Builder创建的视图时会调用该消息;检查您的笔尖是否已更改为自定义-initWithCoder:类。

答案 2 :(得分:1)

我遇到了同样的问题,并通过XCode折射器/重命名功能将类WebView重命名为WebViewCustom,清理了项目,现在工作正常。