9

NSURL印刷null。どういう理由ですか?

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];
4

3 に答える 3

28

次のことを行う必要があります。

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またはその他のエンコーディングも使用できます。

于 2011-02-05T08:59:21.870 に答える
2

のドキュメントから-[NSURL initWithString:]

文字列の形式が正しくない場合は、nilを返します。

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

これは発生します:あなたの入力は何ですか?

于 2011-02-05T08:20:20.620 に答える
0
NSLog(@"urlString = %@",webStr); // its printing correct url string 

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

于 2011-02-05T08:21:59.450 に答える