我需要得到一個字符串的URLURL主機名返回null
我想從字符串的NSURL對象,然後使用NSURL的主機屬性來獲取主機名的主機名。但主機名稱始終爲空。
NSURL *url = [NSURL URLWithString: @"www.google.com"];
NSLog(@"Host name %@", url.host);
但是主機名總是空。 任何人都可以解釋爲什麼主機名爲空?
編輯:對不起,有一個錯字,我錯過了一個報價和一個逗號,而問這個問題。但問題仍然是一樣的。
我需要得到一個字符串的URLURL主機名返回null
我想從字符串的NSURL對象,然後使用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>
所以你需要添加http://
也同時形成NSURL
。
NSURL *url = [NSURL URLWithString:@"http://www.google.com"];
NSLog(@"Host name %@", url.host);
是的,我想我忽略了它。我在印象之下,如果url對象不是nil使用字符串沒有方案主機名也不應該是nil。 – codemaster
看起來你錯過了「之後訪問www.google.com嗎?嘗試在添加。
NSURL *url = [NSURL URLWithString: @"www.google.com"];
NSLog(@"Host name %@", url.host); ^
^
(第二行我還添加了一個逗號通知,我想它有指向^盡我所能)
編輯:嗯,好吧,那麼它可能是在隨後的第二行逗號
也看看@ACB說了些什麼,那可能是你的主要問題,而且他是對的。 – Dustin
這將更好地工作,如果你(添加http://):
NSURL *url = [NSURL URLWithString: @"http://www.google.com"];
NSLog(@"Host name %@", url.host);
你也錯過了一個逗號在您的NSLog – Jasper
的問題是缺少的http:// URL中的 - 看到我的回答如下。 – rmaddy