3

添加 WebView 时发生崩溃(由异常触发)。我还没弄清楚为什么。是的,我浏览了网页,因为这是一个非常常见的问题,但没有成功,我找到了一个答案,说我应该实现 DSYM 来正确跟踪堆栈,因为查看所有这些地址毫无意义(我同意) ,问题是我不知道如何做到这一点。我发现了这个:保存 dsym 文件。但是我没有弄清楚如何将它集成到我的项目中,而且看起来很危险。是的,我也启用了 NSZombie,但无济于事。

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

这是委托方法:

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'

我的理论是它试图进行过渡,但没有要添加的实际视图。虽然这是一个疯狂的猜测。这类事情通常会调用异常,但在这种情况下,我看不到发生了什么。

感谢您的帮助,如果问题太愚蠢,请原谅我。

4

3 回答 3

4

我的猜测:

您的笔尖中是否有一个应该是 UIWebView 的视图,但您将该视图的 Class 更改为 WebView?

您应该首先在界面生成器中检查这一点。
如果您将视图元素的 Class 更改为不可用的类,则会发生此异常。

于 2011-02-17T14:35:02.677 回答
2

确切的错误是内存地址处名为WebView( not )的类的某个实例正在发送消息,但它无法识别。加载使用 Interface Builder 创建的视图时会调用该消息;检查您的 nibs 以查看您已更改为自定义类的视图。UIWebView0x5718320-initWithCoder:WebView

于 2011-02-17T14:36:07.577 回答
1

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

于 2013-04-02T12:04:44.573 回答