iOS:NSString丢失URL,(空)显示

这是我的代码到目前为止:

NSString *listedImageURL = listedProduct.image; NSLog(@"URL: %@", listedImageURL); 

此代码工作正常,NSLog显示我正确的URL。 但是当我尝试下面的代码,NSLog显示(空):

 NSString *listedImageURL = listedProduct.image; NSURL *imageURL = [NSURL URLWithString:listedImageURL]; NSData *imageData = [NSData dataWithContentsOfURL:imageURL]; UIImage *image = [UIImage imageWithData:imageData]; 

我究竟做错了什么??

我相信这个人正在走上正轨,文档里写道:

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

如果您要发布一些正在转换的URL的示例,我相信这将有助于确定哪些字符可能会对您造成问题。

我会build议logging:listedImageURL

然后也运行:

 NSString *escapedImageUrl = [listedProduct.image stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

然后logging下来。

这应该让你看到什么是逃脱和什么是错过的。 它可以像一个stream浪的空间一样简单。

您也可以尝试使用NSASCIIStringEncoding而不是NSUTF8StringEncoding,看看是否有所作为。

它可以为空,因为你的string转换为url。

试试下面的代码;

 NSString *listedImageURL = [listedProduct.image stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSURL *imageURL = [NSURL URLWithString:listedImageURL]; NSData *imageData = [NSData dataWithContentsOfURL:imageURL]; UIImage *image = [UIImage imageWithData:imageData]; 

将为你工作,我认为。 祝你好运。