0

「www.example.com」または「example.com」のような文字列を「http://www.example.com」のような有効な URL 文字列にフォーマットする API または適切な関数はありますか?

+ (NSString*)complete:(NSString *)urlString
{
    NSArray * urlParts = [urlString componentsSeparatedByString:@"."];
    if(urlParts.count==3)
        return [NSString stringWithFormat:@"http://www.%@.%@",[urlParts objectAtIndex:1],[urlParts objectAtIndex:2]];
    else if(urlParts.count==2)
        return [NSString stringWithFormat:@"http://www.%@.%@",[urlParts objectAtIndex:0],[urlParts objectAtIndex:1]];
    return nil;
}

これは現在のソリューションのように見えますが、これは私にはあまり良くなく、しっかりしているようには見えません。

4

1 に答える 1

4

あなたはこれをかなり簡単に行うことができますNSDataDetector

NSDataDetector *detector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypeLink error:NULL];
NSString *URLString = @"www.example.com";
NSTextCheckingResult *result = [detector firstMatchInString:URLString options:0 range:NSMakeRange(0, URLString.length)];
if (result) {
    NSURL *URL = [result URL];
    NSLog(@"%@", URL); // http://www.example.com
}

wwwそれが特定のドメインの有効なサブドメインであると想定しないでください。

結果を文字列として必要な場合は、のabsoluteStringメソッドを使用できますがNSURL、通常はURLNSURLの代わりに使用することをお勧めします。NSString

于 2012-08-16T16:40:59.053 に答える