2012-10-29 5 views
6

を返します。しかし、ホスト名は常にnullです。URLのホスト名には、私は文字列からNSURLオブジェクトを作成しようとしてからホスト名を取得するためにNSURLのホストプロパティを使用していた文字列のURL</p> <p>のホスト名を取得する必要がヌル

NSURL *url = [NSURL URLWithString: @"www.google.com"]; 
NSLog(@"Host name %@", url.host); 

ですが、ホスト名は常にnullです。 誰でもなぜホスト名がnullであるのか説明できますか?

編集:質問をしている間に、誤植とカンマが見当たらなかったのは残念です。しかし、問題はまだ同じです。

+0

また、あなたのNSLogにカンマが足りない – Jasper

+0

問題は、URLにhttp://が見つからないことです。以下の回答を参照してください。 – rmaddy

答えて

7

- (NSString *)host; 

戻り値:

URLのホスト。受信機はRFC 1808に準拠していない場合、それはRFC 1808に準拠していない場合は、

nilを 戻りだから、それはnilを返します。次のようRFC 1808の定義に従って、

正しい構文は次のとおりです。

<scheme>://<net_loc>/<path>;<params>?<query>#<fragment> 

だからNSURLを形成しながらもhttp://を追加する必要があります。

NSURL *url = [NSURL URLWithString:@"http://www.google.com"]; 
NSLog(@"Host name %@", url.host); 
+1

はい、私はそれを見落としたと思います。私は印象に残っていました。urlオブジェクトがスキームなしの文字列を使用してnilでない場合、ホスト名もnilでなくてはなりません。 – codemaster

1

あなたは「www.google.com後?でそれを追加してみてください。

NSURL *url = [NSURL URLWithString: @"www.google.com"]; 
NSLog(@"Host name %@", url.host);    ^
        ^

(私もコンマを追加し、2行目に注意してください、私は^でそれを指すようにしようとした欠落しているように見えます最高のI可能性)

EDIT:ああ、大丈夫、それは2番目の行にコンマかもしれ

+1

@ACBはあなたの主な問題かもしれないと言って何を見て、彼は関係なくです。 – Dustin

0

あなたは(のhttpを追加しない場合、これは良い仕事します://):

NSURL *url = [NSURL URLWithString: @"http://www.google.com"]; 
NSLog(@"Host name %@", url.host); 
1として
関連する問題