创建的NSURL为null

时间:2011-02-05 08:16:59

标签: iphone nsurl

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

3 个答案:

答案 0 :(得分: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或任何其他编码。

答案 1 :(得分:2)

来自-[NSURL initWithString:]的文档:

  

如果字符串格式错误,则返回nil。

     

此方法要求URLString包含任何必要的百分比转义码,即':','/','%','#',';'和'@'。请注意,'%'转义是通过UTF-8转换的。

提出:你的意见是什么?

答案 2 :(得分:0)

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

它没有打印正确的URL字符串。它只是打印字符串。 因此,如果NSURL * webURL = [[NSURL alloc] initWithString:webStr]返回nil,则表示您的字符串不是有效的URL。