1

我有一个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];
}
4

7 回答 7

0

执行此操作并检查您遇到的错误。

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
    {
       NSLog("Error=%s",error);
    }
于 2012-06-13T11:04:05.080 回答
0

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

[webView stopLoading];
webView.delegate = nil;
于 2012-06-13T10:07:27.607 回答
0

问题解决。将 UIWebView 设置为 nil 并在 WebView 中再次加载请求。但现在最多只能在最坏的情况下应用程序崩溃。

于 2012-07-11T05:08:44.007 回答
0

尝试这个 :

-(void)viewWillDisappear:(BOOL)animated
    {
        if([webView isLoading])
        {
            [webView stopLoading];
        }
    }
于 2012-07-11T05:18:17.760 回答
0

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

于 2012-06-13T10:03:23.073 回答
0

只需在此处添加此内容,以免其他人犯同样的初学者错误:

请记住,这webView.delegate是一个弱引用。如果您将其设置为其他内容,self如果没有其他对它的引用,您的委托可能会被破坏,这将导致各种崩溃。

于 2015-11-04T07:06:08.600 回答
-1

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

[webView stopLoading];
[webView release];
webView = nil;
webView.delegate = nil;
于 2012-11-01T06:11:48.523 回答