Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.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/3/html/71.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 iOS网页没有';除非按两次按钮,否则不要加载_Iphone_Html_Ios_Uiwebview_Nsstring - Fatal编程技术网

Iphone iOS网页没有';除非按两次按钮,否则不要加载

Iphone iOS网页没有';除非按两次按钮,否则不要加载,iphone,html,ios,uiwebview,nsstring,Iphone,Html,Ios,Uiwebview,Nsstring,我对它进行了调试,看起来它应该加载了。但是由于某种原因,当你第一次点击按钮时,什么也没有发生 如果用户再次点击该按钮,则效果良好。有什么建议吗?在我看来,第一次单击按钮时,webpageURLLabel。文本可能没有有效的URL,因此请求无效。然后,当调用[self-checkURL]时,webpageURLLabel.text被设置为有效的URL,因此下一次单击有效 在创建NSURLRequest之前,您可能应该调用-checkURL?在checkURL中也存在问题。注意,它总是返回YES。f

我对它进行了调试,看起来它应该加载了。但是由于某种原因,当你第一次点击按钮时,什么也没有发生


如果用户再次点击该按钮,则效果良好。有什么建议吗?

在我看来,第一次单击按钮时,
webpageURLLabel。文本可能没有有效的URL,因此请求无效。然后,当调用
[self-checkURL]
时,
webpageURLLabel.text
被设置为有效的URL,因此下一次单击有效


在创建
NSURLRequest
之前,您可能应该调用
-checkURL

checkURL
中也存在问题。注意,它总是返回YES。for循环内部是逻辑,可简化为:

- (IBAction)saveButton:(id)sender
{
    NSURL *yourURL = [NSURL URLWithString: webpageURLLabel.text ];
    NSURLRequest *request = [[NSURLRequest alloc] initWithURL:yourURL];
    if ([self checkURL] == YES) {
        [webpagePreview loadRequest:request];
        webpagePreview.scalesPageToFit = YES;
    }
}

- (BOOL)checkURL
{
    NSString *arrayOfStrings = [NSArray arrayWithObjects:@"http://", @"https://", nil];
    NSString *stringToSearchWithin = webpageURLLabel.text;

    BOOL found=NO;
    for (NSString *s in arrayOfStrings)
    {
        if ([stringToSearchWithin rangeOfString:s].location != NSNotFound)
        {
            found = YES;
            break;
        } else
        {
            webpageURLLabel.text = [NSString stringWithFormat:@"http://%@", webpageURLLabel.text];
            found = YES;
            break;
        }
    }
    return found;
}

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    webpageTitleLabel.text = [webpagePreview stringByEvaluatingJavaScriptFromString:@"document.title"];
}

但是,考虑一下如果你有一个有效的条目,从<>代码> @“http://\”/代码>会发生什么。第一次通过循环时,if条件失败,因此

@“http://”
被添加到URL的前面,然后返回。所以
@”https://valid.com“
变为
@”http://https://valid.com“
。您需要将
else
中的所有内容移到for循环之外,并且只有在“查找”不正确时才执行此操作。

我修复了它。谢谢你的建议
if (some condition) {
    found = YES;
    break;
} else {
    // Fix webpageURLLabel.text
    found = YES;
    break;
}