Objective c UIWebView模拟器突然不工作
我有一套代码,大约一个小时前还可以正常工作。然后,当我尝试在几分钟后再次启动它时,UIWebView只显示一个白色屏幕。但是如果现在我屏蔽了-(bool)方法,那么viewDidLoad就会出现。(使用NSLog测试)我可以问一下代码发生了什么吗??它正在工作,突然停止工作 m 如果我实现了上述方法,当打开UIWebView时,应用程序将不断弹出错误域错误-999不停止Objective c UIWebView模拟器突然不工作,objective-c,ios,uiwebview,Objective C,Ios,Uiwebview,我有一套代码,大约一个小时前还可以正常工作。然后,当我尝试在几分钟后再次启动它时,UIWebView只显示一个白色屏幕。但是如果现在我屏蔽了-(bool)方法,那么viewDidLoad就会出现。(使用NSLog测试)我可以问一下代码发生了什么吗??它正在工作,突然停止工作 m 如果我实现了上述方法,当打开UIWebView时,应用程序将不断弹出错误域错误-999不停止 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSString *currentURL = [[request URL] absoluteString];
NSRange range1= [currentURL rangeOfString:@"news"];
NSRange range2= [currentURL rangeOfString:@"pdf"];
if (range1.location == NSNotFound)
{
NSURL *url = [NSURL URLWithString:@"http://www.imc.jhmi.edu/news.html"];
[webView loadRequest:[NSURLRequest requestWithURL:url]];
return YES;
}
if(range2.location==NSNotFound)
{
NSURL * url = [NSURL URLWithString:@"http://www.imc.jhmi.edu/news.html"];
[webView loadRequest:[NSURLRequest requestWithURL:url]];
return YES;
}
return NO;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
webView.scalesPageToFit=YES;
webView.delegate = self;
NSString *urlAddress = @"http://www.imc.jhmi.edu/news.html";
NSURL *url =[NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[webView loadRequest:requestObj];
NSLog(@"sadfasdf");
}
h
@界面ViewController:UIViewController{
ibuiwebview*webView;
}
加载请求时,委托方法
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
我会接到电话的
在该方法中,您尝试无限次地重新加载同一页
Error Domain=NSURERRORDOMAIN Code=-999“该操作无法完成。(NSURERRORDOMAIN错误-999)。”UserInfo=0xe203e80{NSERRORFAILINGURKEY=,NSERRORFAILINGURSTRINGKEY=}
我尝试了你的代码,但出现了这个错误。如果在WebView的上一个请求完成之前发出另一个请求,则可能会发生此错误。因此,请尝试在委托方法中避免重复加载请求的情况
if(range2.location==NSNotFound)
这种情况总是正确的
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSString *currentURL = [[request URL] absoluteString];
NSRange range1= [currentURL rangeOfString:@"news"];
if (range1.location == NSNotFound)
{
NSURL *url = [NSURL URLWithString:@"http://www.imc.jhmi.edu/news.html"];
[webView loadRequest:[NSURLRequest requestWithURL:url]];
return YES;
}
return YES;
}
加载请求时,委托方法
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
我会接到电话的
在该方法中,您尝试无限次地重新加载同一页
Error Domain=NSURERRORDOMAIN Code=-999“该操作无法完成。(NSURERRORDOMAIN错误-999)。”UserInfo=0xe203e80{NSERRORFAILINGURKEY=,NSERRORFAILINGURSTRINGKEY=}
我尝试了你的代码,但出现了这个错误。如果在WebView的上一个请求完成之前发出另一个请求,则可能会发生此错误。因此,请尝试在委托方法中避免重复加载请求的情况
if(range2.location==NSNotFound)
这种情况总是正确的
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSString *currentURL = [[request URL] absoluteString];
NSRange range1= [currentURL rangeOfString:@"news"];
if (range1.location == NSNotFound)
{
NSURL *url = [NSURL URLWithString:@"http://www.imc.jhmi.edu/news.html"];
[webView loadRequest:[NSURLRequest requestWithURL:url]];
return YES;
}
return YES;
}
UIWebView的委托方法:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
}
如果web视图应开始加载内容,则返回“是”,否则返回“否”。调用以下命令时,将在viewDidLoad方法中调用该方法:
[webView loadRequest:requestObj];
在委托方法中,您再次调用相同的方法:
[webView loadRequest:[NSURLRequest requestWithURL:url]];
这就变成了一次又一次地调用委托方法,并形成一个无限循环。每次loadRequest都会发生这种情况,但在加载之前,会再次调用相同的loadRequest,形成循环
此方法中不需要loadRequest,只需针对所需条件返回YES或no即可。UIWebView的委托方法:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
}
如果web视图应开始加载内容,则返回“是”,否则返回“否”。调用以下命令时,将在viewDidLoad方法中调用该方法:
[webView loadRequest:requestObj];
在委托方法中,您再次调用相同的方法:
[webView loadRequest:[NSURLRequest requestWithURL:url]];
这就变成了一次又一次地调用委托方法,并形成一个无限循环。每次loadRequest都会发生这种情况,但在加载之前,会再次调用相同的loadRequest,形成循环
在这个方法中不需要loadRequest,只需根据需要的条件返回YES或no。是的,我注意到了。但是如果我删除了range2部分,webview仍然无法加载。仅当我删除所有内容并将其保留为
返回yes
然后webview将加载请转换该委托方法,就像我回答中的代码一样,它对我有效。:)如果我为我的range2输入另一个if语句,它似乎停止工作。但我注意到,如果只将其保留为范围1,效果会很好。但是如果我删除了range2部分,webview仍然无法加载。仅当我删除所有内容并将其保留为返回yes
然后webview将加载请转换该委托方法,就像我回答中的代码一样,它对我有效。:)如果我为我的range2输入另一个if语句,它似乎停止工作。但如果只将其保留为范围1,则效果会很好