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];
答案 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。