Objective c UIWebView模拟器突然不工作

Objective c UIWebView模拟器突然不工作,objective-c,ios,uiwebview,Objective C,Ios,Uiwebview,我有一套代码,大约一个小时前还可以正常工作。然后,当我尝试在几分钟后再次启动它时,UIWebView只显示一个白色屏幕。但是如果现在我屏蔽了-(bool)方法,那么viewDidLoad就会出现。(使用NSLog测试)我可以问一下代码发生了什么吗??它正在工作,突然停止工作 m 如果我实现了上述方法,当打开UIWebView时,应用程序将不断弹出错误域错误-999不停止 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest

我有一套代码,大约一个小时前还可以正常工作。然后,当我尝试在几分钟后再次启动它时,UIWebView只显示一个白色屏幕。但是如果现在我屏蔽了-(bool)方法,那么viewDidLoad就会出现。(使用NSLog测试)我可以问一下代码发生了什么吗??它正在工作,突然停止工作

m

如果我实现了上述方法,当打开UIWebView时,应用程序将不断弹出错误域错误-999不停止

- (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,则效果会很好