den Host der URL holen, brechen sie am .
Begrenzer auf, und die letzte Komponente nehmen.
- (NSString *) tldOfURL: NSURL *theURL; {
NSString *host = theURL.host;
NSArray *parts = [host componentsSeparatedByString: @"."];
if parts.count < 2 {
return nil;
}
return parts.lastObject;
}
Zuerst war meine Antwort NSURLComponents
, wie in den meisten Fällen, dass die Klasse macht die ganze schwere Arbeit für Sie zu verwenden, aber es sieht aus wie es keinen Mechanismus, um die TLD hat zum Extrahieren.
Beachten Sie, dass obiges Nil zurückgibt, wenn der Hostname nicht mindestens einen Punkt enthält (.
) und eine leere Zeichenfolge zurückgibt, wenn der Host mit einem Punkt endet. Beide Fälle sollten als Fehler behandelt werden.
P.S. Ich werde bei Objective-C Syntax rostig. Kaum zu glauben, wie viele Jahre ich damit verbracht habe, Objective-C zu schreiben!
http://stackoverflow.com/questions/20430620/is-it-possible-to-just-get-the-domain-und-tld-from-an-nsurl-no-www-or-anyanything –
Die Die Antwort ist selbstverständlich, dass Sie wissen, wonach Sie suchen und einen Vergleich durchführt. Es funktioniert für diese [URL isFromWebsite: "youtube.com"] sowie diese [URL isFromWebsite: ". Com"]; – Vulkan
Aber '.com.gr' ist nicht die TLD--' .gr' ist. –