到目前为止,这是我的代码:
NSString *listedImageURL = listedProduct.image;
NSLog(@"URL: %@", listedImageURL);
此代码工作正常,NSLog显示正确的URL。但是,当我尝试以下代码时,NSLog显示(null):
NSString *listedImageURL = listedProduct.image;
NSURL *imageURL = [NSURL URLWithString:listedImageURL];
NSData *imageData = [NSData dataWithContentsOfURL:imageURL];
UIImage *image = [UIImage imageWithData:imageData];
我做错了什么?
答案 0 :(得分:5)
我相信relower走在正确的轨道上,文档指出:
此方法要求URLString包含任何必要的百分比转义码,即':','/','%','#',';'和'@'。请注意,'%'转义是通过UTF-8转换的。
如果您要发布一些您要转换的网址示例,我认为识别哪些字符可能会对您造成问题会很有帮助。
我建议记录:listedImageURL
然后还在运行:
NSString *escapedImageUrl = [listedProduct.image stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
然后记录下来。
这应该让你看到被逃脱的内容和错过的内容。它可以像杂散空间一样简单。
你也可以尝试使用NSASCIIStringEncoding而不是NSUTF8StringEncoding,看看是否有所作为。
答案 1 :(得分:2)
它可以为null,因为你的字符串是url转换。
请尝试以下代码;
NSString *listedImageURL = [listedProduct.image stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *imageURL = [NSURL URLWithString:listedImageURL];
NSData *imageData = [NSData dataWithContentsOfURL:imageURL];
UIImage *image = [UIImage imageWithData:imageData];
我认为会对你有用。祝你好运。