【问题标题】:downloading multiple high resolution images leading the app to crash下载多个高分辨率图像导致应用程序崩溃
【发布时间】:2018-05-09 07:10:46
【问题描述】:

我正在表格视图中下载高分辨率图像,每个单元格都有一个大图像。

@property (weak, nonatomic) IBOutlet AsyncImageView *menuItemLogo;
.
.
.
- (void)setCellWithImage:(NSString *)imageURL
{
    if (imageURL && [imageURL length]) {
        self.menuItemLogo.imageUrl = imageURL;
        [self.menuItemLogo startImageLoad];
    }
    else {
        self.menuItemLogo.image = [Application placeholderImage];
        [UIImage imageNamed:@"ic_launcher"];
    }
}

我正在调用此函数以使用从后端接收到的 imageURL 填充单元格。并将其显示在“menuItemLogo”中 几秒钟后,应用程序崩溃并且我收到内存警告。 有什么帮助吗?谢谢。

【问题讨论】:

  • 你能显示记录的错误和startImageLoad方法吗?
  • 它是一个锁定的库,我无法访问 startImageLoad 方法
  • 如果我们不知道startImageLoad 方法是如何实现的,很难说你的问题是什么原因。在我看来,您可以使用 SDWebImage 等其他库来修复它。
  • 我尝试了新库,应用在真机上仍然崩溃,而在模拟器上正常运行
  • 你知道是哪一行让它崩溃了吗?

标签: objective-c imagedownload


【解决方案1】:

这是从 URL 加载图像的最佳库。你可以检查一下。

https://github.com/rs/SDWebImage

这个库提供了很多选项,你也可以设置占位符。

【讨论】:

  • 我尝试了新库,应用在真机上仍然崩溃,而在模拟器上正常运行
  • 是否可以提供一些图片网址?就像服务器的响应。最好提供请求 URL。
【解决方案2】:

在有限的内存环境中显示非常大的图像会导致内存问题。可以参考苹果示例Large Image Downsizing

【讨论】:

  • 我该怎么做?有什么例子吗?
  • 您可以在上面提到的link下载示例代码。苹果编写的示例代码
猜你喜欢
  • 2018-08-19
  • 2012-11-22
  • 2015-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-13
相关资源
最近更新 更多