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模拟器路径中?