2011-09-06 95 views
4

我正在使用https://github.com/rs/SDWebImage在UITableView中加载图像。 这里是我是如何实现它(简单),里面的cellForRowAtIndexPathSdwebimage EXC_BAD_ACCESS

[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

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

如果我不得不猜测,你的UITableViewCell没有被正确的保留,它要么被释放,要么在图像加载之前重复使用太快。