1

したがって、呼び出されWebViewたカスタムNSObjectサブクラスの内部にGoogleLinkFetcherあり、私が行うことは、からのリクエストをロードし、その上でメソッドを呼び出すために自分自身を呼び出しますwebviewwebView:didFinishLoadForFrame:そのメソッドを呼び出さない場合はすべて正常に動作しますが、EXC_BAD_ACCESSエラーがその行を指している場合。割り当て解除とメモリ割り当てについて何か読んだことEXC_BAD_ACCESSがありますが、ARC環境にいるので、問題はないと思います...コードは次のとおりです。

-(void)searchLinks
{
    NSLog(@"searching links at googlelinksearcher url: %@", googleUrl);
    NSURLRequest *request = [NSURLRequest requestWithURL:googleUrl];
    [[webView mainFrame] loadRequest:request];
    [webView setFrameLoadDelegate:self];
}

-(void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame
{
    if(frame == sender.mainFrame)
    {
        NSLog(@"main frame");
        [self getLinks];
    }
}

エラーは [self getLinks] を指しています。

誰かが助けてくれることを願っています、事前に感謝します!

4

1 に答える 1

3

問題は、読み込みプロセスを開始しても、インスタンスへの強い参照を保持しておらずGoogleLinkFetcher、Web ビューの読み込みが完了する前に (実際には開始直後に) 解放されていることです。

webView:didFinishLoadForFrame:メソッドにブレークポイントを設定し、selfが の有効なインスタンスであるかどうかを確認しますGoogleLinkFetcher。またはNSLog self、電話する前にgetLinks

于 2013-05-16T18:51:53.793 に答える