+ [NSURL URLWithString:]返回nil

JAH*_*lia 2 iphone nsurl uiimageview ios

我使用此代码UIImage从一个加载URL:

  NSURL *imageURL = [NSURL URLWithString:@"http://testwebsite.com/image.png"];
  NSData *imageData = [[NSData alloc] initWithContentsOfURL:imageURL];
  imageView.image = [UIImage imageWithData: imageData];
Run Code Online (Sandbox Code Playgroud)

但我坚持URL看起来像这样:
http://www.testwebsite.com/getFile?userID=123
这在浏览器中工作正常,但在imageData上面的变量中返回nil .

如何加载来自这样一个模糊的图像URL (即URL从不显示文件名但是重定向到图像文件的图像)?

先感谢您.

JAH*_*lia 10

由于一些奇怪的原因,我必须使用:
[NSURL URLWithString:[urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

当我创建URL,这解决了问题.

  • 如果`+ URLWithString:`返回`nil`,那是因为你传给了一个格式错误的字符串.值得尝试弄清楚字符串首先是无效的,而不是盲目地调用`stringByAddingPercentEscapesUsingEncoding:` (2认同)