我有一个带有URL的NSString,就这样:
http://someurl.com/something
我如何才能获得someurl.com
?
我已经尝试substringToIndex
而没有运气:(
提前致谢:)
答案 0 :(得分:66)
<强>目标C 强>
NSString* urlString = @"http://someurl.com/something";
NSURL* url = [NSURL URLWithString:urlString];
NSString* domain = [url host];
Swift 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
答案 1 :(得分:10)
使用
[[NSURL URLWithString:@"http://someurl.com/something"] host]
答案 2 :(得分:1)
答案 3 :(得分:1)
Swift 4.2
我写了URL扩展名以采用SLD。似乎有n
extension URL {
/// second-level domain [SLD]
///
/// i.e. `msk.ru, spb.ru`
var SLD: String? {
return host?.components(separatedBy: ".").suffix(2).joined(separator: ".")
}
}
答案 4 :(得分:0)
Swift 4
如果您使用自定义网址说深层链接,例如:
myapp:homescreen
(并且没有&#34;带有主机名的正斜杠&#34;(//www.bbc)),这个解决方案对我有用,可以提取&#34;主屏幕&#34;是using the index
方法,然后pattern matching
在":"
let index = absoluteString.index(absoluteString.startIndex, offsetBy: 5)
String(absoluteString[index...])
此方案中 url.host
或absoluteURL.host
nil