Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone UIWebView正在崩溃_Iphone_Objective C_Ios_Cocoa Touch_Uiwebview - Fatal编程技术网

Iphone UIWebView正在崩溃

Iphone UIWebView正在崩溃,iphone,objective-c,ios,cocoa-touch,uiwebview,Iphone,Objective C,Ios,Cocoa Touch,Uiwebview,我有一个UIWebView,它将加载文档。webview中提到的所有支持的文档都在运行。但有时,每当我快速来回移动时,UIWebView就会崩溃。我的意思是,我正在单击“上一步”并一次又一次地打开文件。如果我这样做,我的应用程序就会崩溃 知道为什么会这样吗??对于视频、音频和txt文件来说,它工作得很酷,但对于Office文档、数字、页面和文档来说,它崩溃得很奇怪 请帮帮我 -(void) backBtnPressed { [_webView stopLoading]; if (

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

如果要从一个视图控制器移动到另一个视图控制器,请在控制器的解除锁定中将webview的delegate属性设置为nil

[webView stopLoading];
webView.delegate = nil;

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

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

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

试试这个:

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

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

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

只需在此处添加此项,就有可能其他人也会犯同样的初学者错误:


请记住,
webView.delegate
是一个弱引用。如果您将其设置为除
self
之外的其他值,则如果没有其他引用,您的代理可能会被销毁,这将导致各种崩溃。

在发布webview之前,您是否将webview的
委托属性设置为
nil
?@mvds-为什么这不是一个答案:)我没有像webview.deleget=self那样设置委托;当我移动到另一个视图控制器时,我也会释放webview。我正在从同一个viewcontroller打开文件。我做错了什么吗?您的文档太大意味着>2MB?没有。所有小于1MB的内容,即使<512 KB,我也没有设置webview.deleget=self这样的委托;当我移动到另一个视图控制器时,我也会释放webview。我正在从同一个viewcontroller打开文件。我做错了什么吗?我正在使用removefromsuperview和stoploading返回我没有移动到其他视图控制器。我在同一个视图控制器中。我使用的是removefromsuperview和stoploadingYa,我已经添加了它。没有打印错误日志。但在调试区域,我可以看到此异常CPMessageException:(null)复制
url
,并将其粘贴到浏览器中,检查其是否正常工作?否。我是从本地文件路径打开文件,而不是从网络打开文件。该文件(url)是否存在于iPhone模拟器路径中?