获取URL字符串的域名部分?

我有一个带URL的NSString,这样:

http://someurl.com/something 

我怎么才能获得someurl.com ? 我已经尝试过substringToIndex没有运气:(

提前致谢 :)

Objective-C的

 NSString* urlString = @"http://someurl.com/something"; NSURL* url = [NSURL URLWithString:urlString]; NSString* domain = [url host]; 

斯威夫特2

 var urlString = "http://someurl.com/something" var url = NSURL(string: urlString) var domain = url?.host 

Swift 3+

 var urlString = "http://someurl.com/something" var url = URL(string: urlString) var domain = url?.host 

使用

 [[NSURL URLWithString:@"http://someurl.com/something"] host] 

您应该查看NSURL类的host()方法。

斯威夫特4

如果你使用自定义url方案说深层链接,例如:

 myapp:homescreen 

(并且没有“带主机名的正斜杠”(//www.bbc)),一个解决方案对我来说,提取“主屏幕”是通过using the index下面using the index方法然后pattern matching来刮掉所有":"

 let index = absoluteString.index(absoluteString.startIndex, offsetBy: 5) String(absoluteString[index...]) 

在这种情况下, url.hostabsoluteURL.host nil