ios – Sdwebimage EXC_BAD_ACCESS

前端之家收集整理的这篇文章主要介绍了ios – Sdwebimage EXC_BAD_ACCESS前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用 https://github.com/rs/SDWebImage在UITableView中加载图像.
以下是我在cellForRowAtIndexPath中实现它(简单)的方法

[cell.imageView setImageWithURL:[NSURL URLWithString:[item valueForKey:@"icon"]]placeholderImage:[UIImage imageNamed:@"icon_events_default.png"]];

在UITableView中加载图像后,我向下滚动,然后再向上滚动,我收到错误:EXC_BAD_ACCESS

- (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder
{ 
  SDWebImageManager *manager = [SDWebImageManager sharedManager];

  // Remove in progress downloader from queue
  [manager cancelForDelegate:self];

  UIImage *cachedImage = [manager imageWithURL:url];

  if (cachedImage)
  {   
    //EXC_BAD_ACCESS hapens here   
    self.image = cachedImage;
  }
  else
  {
    if (placeholder)
    {
        self.image = placeholder;
    }

    [manager downloadWithURL:url delegate:self];
  }
}

任何帮助都非常感谢.

解决方法

你是通过Zombies in Instruments运行这段代码吗?这应该立即指出问题.只需从产品菜单中选择配置文件,仪器将启动,选择Zombie仪器,然后运行导致此问题的测试场景,您应该看到一个僵尸弹出窗口,显示对象如何仍在使用,即使它不再有效.

如果我不得不猜测,你的UITableViewCell没有被正确保留,它会在url加载之前的图像被释放或重复使用.

猜你在找的iOS相关文章