3

WebViewの追加中にクラッシュが発生しました(例外によってトリガーされます)。理由がわかりません。そして、はい、これは非常に一般的な問題であるため、Webを閲覧しましたが、成功しませんでした。スタックを正しく追跡するためにDSYMを実装する必要があるという答えを見つけました。これらのアドレスをすべて見ることは、まったく意味がないためです(同意します)。 、問題は私がこれを行う方法がわからないということです。私はこれを見つけました:dsymファイルを保存します。しかし、それが危険に見えることに加えて、それを自分のプロジェクトに統合する方法を理解していませんでした。はい、NSZombieも有効にしていますが、役に立ちません。

とにかく今私の質問のポイントに。イベントをトリガーするボタンがあります。イベントは、押されたボタンに応じて文字列(URL)を変更します。次に、このIBActionはデリゲートを呼び出し、デリゲートは、IBActionによって編集されたURLで開くUIWebViewを持つビューに遷移します。だから私は次のコードを持っています:

これは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'

私はそれが移行を行おうとしているという理論を持っていますが、追加する実際の見方はありません。それは野蛮な推測ですが。例外は通常、そのようなものによって呼び出されますが、この場合、何が起こっているのかわかりません。

あなたの助けに感謝します、そしてそれがあまりにも馬鹿げた質問であるならば私を許してください。

4

3 に答える 3

4

私の側からの推測:

nib に UIWebView であるべきビューがありますが、そのビューのクラスを WebView に変更しましたか?

最初にインターフェースビルダーでこれを確認する必要があります。
この例外は、ビュー要素のクラスを利用できないクラスに変更した場合に発生するものとまったく同じです。

于 2011-02-17T14:35:02.677 に答える
2

正確なエラーは、メモリ アドレスでWebView( not )と呼ばれるクラスのインスタンスが、認識されないメッセージを送信されていることです。このメッセージは、Interface Builder で作成されたビューをロードするときに呼び出されます。カスタムクラスに変更したビューのペン先を確認してください。UIWebView0x5718320-initWithCoder:WebView

于 2011-02-17T14:36:07.577 に答える
1

私は同じ問題を抱えていて、XCoderefractor/Rename機能によってクラスWebViewの名前をWebViewCustomに変更し、プロジェクトをクリーンアップしたところ、正常に動作するようになりました。

于 2013-04-02T12:04:44.573 に答える