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];
将为你工作,我认为。 祝你好运。