我需要获取字符串url的主机名
我正在尝试从字符串创建NSURL对象,然后使用NSURL的host属性来获取主机名。但主机名始终为空。
NSURL *url = [NSURL URLWithString: @"www.google.com"];
NSLog(@"Host name %@", url.host);
但主机名始终为null。 任何人都可以解释为什么主机名为空?
编辑:很遗憾在提问时我错过了引号和逗号。但问题仍然存在。
答案 0 :(得分:7)
- (NSString *)host;
返回值
网址的主机。如果接收者不符合
RFC 1808
, 返回nil
因此,如果它不符合RFC 1808
,它将返回nil。根据{{3}}的定义,
正确的语法如下:
<scheme>://<net_loc>/<path>;<params>?<query>#<fragment>
因此,您需要在形成http://
时添加NSURL
。
NSURL *url = [NSURL URLWithString:@"http://www.google.com"];
NSLog(@"Host name %@", url.host);
答案 1 :(得分:1)
看起来你错过了“www.google.com之后?尝试添加它。
NSURL *url = [NSURL URLWithString: @"www.google.com"];
NSLog(@"Host name %@", url.host); ^
^
(关于第二行的注意事项我也添加了一个逗号,我试着以最好的方式指出它)
编辑:啊,好吧那么它可能是第二行的逗号。
答案 2 :(得分:0)
如果你这样做(添加http://):
,这将更好NSURL *url = [NSURL URLWithString: @"http://www.google.com"];
NSLog(@"Host name %@", url.host);