需要一种正确构建NSURL的方法

时间:2012-10-16 13:34:42

标签: ios xcode uiwebview nsurl

我在常规NSStrings中存储用户的网站地址 有些是“www.somewebsite.com”,有些是“http://somewebsiteothersite.org”。

我的应用应该打开一个UIWebView并打开该网页:

    NSURLRequest *requestObj = [NSURLRequest requestWithURL:[NSURL URLWithString:[self websiteString]]];
    NSLog(@"visiting: %@",websiteString);
    [webView loadRequest:requestObj];

但是如果省略http://,UIWebView将无法打开页面。

是否存在为UIWebView正确构建NSURL的下降方法?

谢谢!

2 个答案:

答案 0 :(得分:1)

如果不存在,请添加http://

if (![urlStr hasPrefix:@"http://"] && ![urlStr hasPrefix:@"https://"]) {
    urlStr = [@"http://" stringByAppendingString:urlStr];
}

谨防那些意图没有http://的链接,例如ftp://mailto:

答案 1 :(得分:0)

我知道Mathiass回答得更快,但我想分享一个类似的解决方案

//first detect if your string has contains http:// if not add http:// to your string
    NSMutableString *websiteString = @"www.x.com";
    if ([websiteString rangeOfString:@"http://"].location == NSNotFound) {
        NSLog(@"contains http:// == false");
        websiteString = [@"http://" stringByAppendingString:websiteString];

    } else {
        NSLog(@"contains http:// == true");

    }

    NSURLRequest *requestObj = [NSURLRequest requestWithURL:[NSURL URLWithString:[self websiteString]]];
    NSLog(@"visiting: %@",websiteString);
    [webView loadRequest:requestObj];