我怎样才能获得NSURL的顶级域名?

时间:2017-01-06 14:31:57

标签: ios nsurl

例如:

" http://www.youtube.com" - > " .COM"

" http://www.google.com.gr" - > " .com.gr"

" https://made.in.china.chinesewebsite.닷컴" - > &#34 ;.닷컴"

网址的主机是一个死胡同。

NSURL *URL;

[URL host];

1 个答案:

答案 0 :(得分:1)

获取网址的主机,在.分隔符处将其拆分,然后选择最后一个组件。

- (NSString *) tldOfURL: NSURL *theURL; {
  NSString *host = theURL.host;
  NSArray *parts = [host componentsSeparatedByString: @"."];
  if parts.count < 2 {
    return nil;
  }
  return parts.lastObject;
}

起初我的回答是使用NSURLComponents,因为在大多数情况下,该类会为您完成所有繁重工作,但看起来它没有提取TLD的机制。

请注意,如果主机名不包含至少一个句点(.),则上述内容将返回nil;如果主机以句点结尾,则返回空字符串。这两种情况都应视为错误。

P.S。我开始厌恶Objective-C语法。很难相信,因为我花了多少年时间编写Objective-C!