Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa touch 获取URL字符串的域部分?_Cocoa Touch_Ios_Ios4 - Fatal编程技术网

Cocoa touch 获取URL字符串的域部分?

Cocoa touch 获取URL字符串的域部分?,cocoa-touch,ios,ios4,Cocoa Touch,Ios,Ios4,我有一个带有URL的NSString,如下所示: http://someurl.com/something 如何仅获取someurl.com? 我已经尝试了substringToIndex,但没有成功:( 提前感谢:)使用 [[NSURL URLWithString:@"http://someurl.com/something"] host] 目标-C NSString* urlString = @"http://someurl.com/something"; NSURL* url = [N

我有一个带有URL的NSString,如下所示:

http://someurl.com/something
如何仅获取
someurl.com
? 我已经尝试了
substringToIndex
,但没有成功:(

提前感谢:)

使用

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

目标-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

您应该查看该类的方法。

Swift 4

如果您正在使用自定义url方案则表示深度链接,例如:

myapp:homescreen
(并且没有“主机名前斜杠”(//www.bbc)),一个对我来说有效的提取“主屏幕”的解决方案是使用下面的index方法,然后使用
模式匹配来刮除
之后的所有内容:“


url.host
absoluteURL.host
在本场景中为
nil

Swift 4.2

var urlString = "http://someurl.com/something"
var url = NSURL(string: urlString)
var domain = url?.host
我为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: ".")
    }
}

差不多了,但一开始就留下了额外的
www.
是的,因为那是主机名的一部分。你错了。例如,阅读以下内容:简而言之:
http://www.pcwebopedia.com/index.html
->
pcwebopedia.com
Wikipedia说“在DNS中注册的任何名称都是域名。”好的。但是wiki的理念是,每个人都可以在任何时候写他想要的任何东西,而无需付出额外的努力和后果。所以我不考虑它的数据。