Iphone 创建的NSURL为空

Iphone 创建的NSURL为空,iphone,nsurl,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 = %@",w

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

-[NSURL initWithString:
的文档中:

如果字符串格式不正确,则返回nil

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

你的意见是什么

NSLog(@"urlString = %@",webStr); // its printing correct url string 
它没有打印正确的URL字符串。这只是打印字符串。
因此,如果NSURL*webURL=[[NSURL alloc]initWithString:webStr]返回nil,则表示您的字符串不是有效的URL。

您应该执行以下操作

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或任何其他编码。

请单击{}按钮设置问题中的代码格式。其次。发布的代码Nishanth.jeeva不包含明显错误,应按预期工作。[webArray objectAtIndex:1]包含“url打印仍然为空。您的url必须满足RFC 1738中指定的要求:-例如
http://:/?
@Nishanth.jeeva-yup,请参阅Alex Reynold的评论。”。您提供的url应该是
@,而不是您使用的输入http://www.chennaispider.com/resources/2838-Details-Chennai-City-Fire-Stations.aspx“
Ya现在只有我知道该值包含数组中的空格。非常感谢。是的,空格是url中第一个不正确的内容。:)不客气。