0

以下のメソッドを終了した後、EXC_BAD _ACCESS を取得しています。その時点で htmlDocument は無効になります。これはスコープ外にあるためです。しかし、それがエラーが発生する理由ですか?contentView (UIWebView) が読み込まれるまでに、htmlDocument はなくなります。しかし、contentView は loadHTMLString から必要なものをすでに持っているのではないでしょうか?

- (void)viewDidLoad {
[super viewDidLoad];
//something other processing here

NSString *htmlDocument = [NSString stringWithFormat:@"<html> \n"
"<body>%@</body> \n"
"</html>", aboutContent];
[contentView loadHTMLString:htmlDocument baseURL:[NSURL URLWithString:@"http://www.abc.com"]];  

}

これを失敗するまで追跡するより良い方法はありますか?このメソッドを終了すると、コードの行が終了します。そこからSDKのもの。

4

5 に答える 5

2

2 番目の投稿から、コメントアウトした行 ([button release]) は、自動的に解放されるように既にマークされているオブジェクトを解放します。

ボタンの割り当てを行っている「autorelease」を削除するか、エラーや例外なしでコードをコンパイルするための [button release] ステートメントを削除します。

オブジェクトが自動解放用にマークされている場合、そのオブジェクトで解放を呼び出すことは、割り当て解除されたインスタンスで解放を呼び出すことと同じであるため、エラーが発生します。

于 2009-03-14T09:51:07.477 に答える
1

シミュレーターでGuardMallocを使用してアプリを実行してみることができますが、それで何も表示されるとは限りません。エラーの原因となっているステートメントが見つかるまで、ステートメントのコメント化を開始することをお勧めします。

于 2009-03-14T01:28:28.243 に答える
1

追加のコンテキストがないと、提供したばかりのコード スニペットで何が起こっているのか明確ではありません。とは言っても、やりたいことはデバイスにローカルで HTML をロードすることだけのようです。なぜこれをしないのですか?

- (void)viewDidLoad {
    [webView loadRequest:[NSURLRequest 
                          requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] 
                                                pathForResource:@"help/about.html"
                                                ofType:@"html"]isDirectory:NO]]];
}

この手法を使用すると、ユーザーが実際に Web ビューを見ているという事実に気付かなくても、携帯電話で HTML ベースのドキュメントを作成できます。これには、Javascript、CSS、ワックスのボール全体が含まれます。インターネット上で静的なページをレンダリングするためだけに iPhone アプリをインターネットに公開している人を実際に見てきましたが、これは実際には必要ありません。

于 2009-03-14T05:32:20.717 に答える
1

「aboutContent」がオブジェクトへの有効なポインターであると仮定すると、このコードに問題はないと一目でわかります。

于 2009-03-13T23:20:13.187 に答える
1

2 番目の投稿のサンプル コードから、リリースしたボタンは、UIBarButtonItem *buttonコメント アウトしたリリース以降には保持されないため、割り当てが解除されます。

adSubviewボタンを表示するには、( を使用して)別のビューにボタンを追加する必要があります。その後、ボタンを離すことができます。親ビューはボタンを保持します。

もちろん、ボタンを再度参照する場合は、View Controller を維持し、ボタンの割り当て解除でボタンを解放する必要があります。

于 2009-03-14T07:20:33.517 に答える