从 url 检索 jpg 图像返回 nil。但是,从 url 检索 png 图像工作正常

Posted

技术标签:

【中文标题】从 url 检索 jpg 图像返回 nil。但是,从 url 检索 png 图像工作正常【英文标题】:Retrieving jpg image from url returns nil. However, retrieving png image from url works fine 【发布时间】:2017-08-23 16:34:09 【问题描述】:

如果我使用下面的代码,数据将为 nil

dispatch_async(dispatch_get_global_queue(0,0), ^
    UIImage *img = [[UIImage alloc] init];
    NSData * data = [[NSData alloc] initWithContentsOfURL: [NSURL URLWithString:@"http://www.manipalgrocer.com/image/catalog/BANNER/sweets.jpg"]];
    img = [UIImage imageWithData: data];
    dispatch_async(dispatch_get_main_queue(), ^
        menuCell.imgMenu.image = img;
    );
);

但是,如果我使用以下代码,我将在 menuCell 中获取图像

dispatch_async(dispatch_get_global_queue(0,0), ^
    UIImage *img = [[UIImage alloc] init];
    NSData * data = [[NSData alloc] initWithContentsOfURL: [NSURL URLWithString:@"https://www.fooodzapp.com/image/catalog/JUST%20CHILL/Justchill%20(1).png"]];
    img = [UIImage imageWithData: data];
    dispatch_async(dispatch_get_main_queue(), ^
        menuCell.imgMenu.image = img;
    );
);

如果有人知道如何解决这个问题,请回复。提前致谢

【问题讨论】:

您在尝试加载 http URL 时是否在控制台中看到任何消息? 首先在你的plist中添加ATS,检查图片url是否有多余的空间。然后调用服务 【参考方案1】:

您的第一张图片是 HTTP 您需要将 App Transport Security 添加到列表中的 yes

 <key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

【讨论】:

非常感谢@Abdelahad Darwish。现在一切正常

以上是关于从 url 检索 jpg 图像返回 nil。但是,从 url 检索 png 图像工作正常的主要内容,如果未能解决你的问题,请参考以下文章

从 xcassets 中的图像创建 URL 总是返回 nil

“[[NSBundle mainBundle] objectForInfoDictionaryKey:]” 有时返回 nil

“[[NSBundle mainBundle] objectForInfoDictionaryKey:]” 有时返回 nil

Alamofire 将 jpg 图像返回到 Xcode

API JSON & UIPageViewController 可选 Nil

从文件 URL 中检索 ALAsset 或 PHAsset