UIWebView崩溃了

时间:2012-06-13 09:59:19

标签: iphone objective-c ios cocoa-touch uiwebview

我有UIWebView将加载文件。为webview提到的所有支持的文档都可以使用。但有时候,每当我快速来回移动时,UIWebView就会崩溃。我的意思是我一次又一次地点击返回并打开文件。如果我这样做,我的应用程序就会崩溃。

知道为什么会这样吗?它对于视频,音频和txt文件很有用,但对于Office文档和数字,页面文档来说很奇怪。

请帮帮我!!

-(void) backBtnPressed
{
    [_webView stopLoading];
    if ([_webView superview])
    {      
        [_webView removeFromSuperview];
        self.navigationItem.rightBarButtonItem = nil;
    }
}

- (void) loadFile:(NSString*)filePath
{
    NSURL*  url = [NSURL fileURLWithPath:filePath];
    NSURLRequest*   request = [NSURLRequest requestWithURL:url];
    [webView loadRequest:request];
    [webView setScalesPageToFit:YES];
}

7 个答案:

答案 0 :(得分:0)

在控制器的dealloc中将webview的delegate属性设置为nil

答案 1 :(得分:0)

如果要从一个视图控制器移动到另一个视图控制器,请执行以下操作

[webView stopLoading];
webView.delegate = nil;

答案 2 :(得分:0)

实现这一点并确定你得到的错误。

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
    {
       NSLog("Error=%s",error);
    }

答案 3 :(得分:0)

问题解决了。将UIWebView设置为nil并再次在WebView中加载请求。但现在只有在最糟糕的情况下,应用程序才会崩溃。

答案 4 :(得分:0)

试试这个:

-(void)viewWillDisappear:(BOOL)animated
    {
        if([webView isLoading])
        {
            [webView stopLoading];
        }
    }

答案 5 :(得分:0)

这里只是添加了这个,因为其他人犯了同样的初学者错误:

请记住,webView.delegate弱引用。如果你将它设置为self之外的其他东西,如果没有其它引用,你的委托可能会被销毁,这将导致各种崩溃。

答案 6 :(得分:-1)

尝试执行以下操作。它对我有用。

[webView stopLoading];
[webView release];
webView = nil;
webView.delegate = nil;