2011-02-05 10 views
9

NSURL印刷nullです。どういう理由ですか? -[NSURL initWithString:]のためのドキュメントから作成済みNSURLはヌルです

NSString *webStr = [[NSString alloc] initWithFormat:@"%@",[webArray objectAtIndex:1]]; 

NSLog(@"urlString = %@",webStr); // its printing correct url string 

NSURL *webURL = [[NSURL alloc] initWithString:webStr]; 

NSLog(@"url = %@",webURL); // its printing null 

[webURL release]; 

[webStr release]; 
+2

{}ボタンをクリックしてコードをフォーマットしてください。 http://meta.stackexchange.com/questions/22186/how-do-i-format-my-code-blocks –

答えて

27

次の操作を行う必要があります。

NSString *webStr = [[NSString alloc] initWithFormat:@"%@",[webArray objectAtIndex:1]]; 

NSLog(@"urlString = %@",webStr); // its printing correct url string 

NSURL *webURL = [[NSURL alloc] initWithString:[webStr stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]]; 

NSLog(@"url = %@",webURL); // it should print it 

[webURL release]; 

[webStr release]; 

私はNSASCIIStringEncodingを使用しているが、あなたはあまりにもUTF8または他のエンコーディングを使用することができます。

+0

今私は来ました値が配列内のスペースを含んでいることを知るために。本当にありがとう。 – Jeeva

+0

はい、スペースは、URLでOKでない最初のものです。 :) どういたしまして。 –

+0

ありがとうございます。 – Unheilig

2

文字列が不正な形式だった場合は、nilを返します。

このメソッドでは、URLStringに ':'、 '/'、 '%'、 '#'、 ';'、 '@'などの必要なパーセントエスケープコードが含まれていると想定しています。 '%'エスケープはUTF-8で変換されることに注意してください。

あなたの入力は何ですか?

+0

第2のこと。投稿されたコードNishanth.jeevaは明白なエラーを含んでおらず、期待どおりに動作するはずです。 –

+0

[webArray objectAtIndex:1]には「http://www.chennaispider.com/resources/2838-Details-Chennai-City-Fire-Stations.aspx」が含まれています。 – Jeeva

+0

あなたのURLは、RFC 1738:http://www.ietf.org/rfc/rfc1738.txtに指定された要件を満たしている必要があります。 'http:// / ' –

0
NSLog(@"urlString = %@",webStr); // its printing correct url string 

正しいURL文字列が印刷されていません。文字列を印刷するだけです。 NSURL * webURL = [[NSURL alloc] initWithString:webStr]がnilを返した場合、文字列が有効なURLではないことを意味します。

関連する問題