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);