Sdwebimage EXC_BAD_ACCESS - PullRequest
       2

Sdwebimage EXC_BAD_ACCESS

4 голосов
/ 06 сентября 2011

Я использую 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];
  }
}

Любая помощь очень ценится.

1 Ответ

1 голос
/ 06 апреля 2012

Вы запускали этот код через Зомби в Инструментах?Это должно указывать на проблему немедленно.Просто выберите «Профиль» в меню «Продукт», «Инструменты» запустятся, выберите инструмент «Зомби», затем запустите тестовый сценарий, который вызывает эту проблему, и вы увидите всплывающее зомби, показывающее, как объект все еще используется, даже если он больше не действителен..

Если бы я догадался, что вы UITableViewCell не сохраняются должным образом и либо освобождаются, либо повторно используются слишком быстро до загрузки изображения по URL-адресу.

...