URL主机名返回null
我需要获取stringurl的主机名
我想从string中创buildNSURL对象,然后使用NSURL的主机属性来获取主机名。 但主机名始终为空。
NSURL *url = [NSURL URLWithString: @"www.google.com"]; NSLog(@"Host name %@", url.host);
但主机名始终为空。 谁能解释为什么主机名为空?
编辑:我很抱歉有一个错字,我错过了一个报价和一个逗号,而问这个问题。 但问题仍然是一样的。
按照苹果文档 ,
- (NSString *)host;
返回值:
url的主机。 如果接收者不符合
RFC 1808
,则返回nil
所以如果不符合RFC 1808
,它将返回零。 根据RFC 1808
定义,
正确的语法如下:
<scheme>://<net_loc>/<path>;<params>?<query>#<fragment>
所以你需要在形成NSURL
添加http://
。
NSURL *url = [NSURL URLWithString:@"http://www.google.com"]; NSLog(@"Host name %@", url.host);
看起来像你失踪的一个“在www.google.com之后?尝试添加它。
NSURL *url = [NSURL URLWithString: @"www.google.com"]; NSLog(@"Host name %@", url.host); ^ ^
(注意第二行我也加了一个逗号,我试着用最好的方法指出它)
编辑:啊,好吧,那么它可能是第二行的逗号然后。
如果你这样做会更好(添加http://):
NSURL *url = [NSURL URLWithString: @"http://www.google.com"]; NSLog(@"Host name %@", url.host);