获取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.host
或absoluteURL.host
nil