UICollectionView神秘崩溃

时间:2013-12-06 14:29:49

标签: ios objective-c ios7 uicollectionview uicollectionviewcell

我有一个UICollectionView我正在用从互联网下载的图像填充单元格。为此我使用SDWebImage。我的代码如下所示:

-(UICollectionViewCell*) collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{

    NSString *CellIdentifier = @"Gallery_Cell";

    GalleryCell *cell= (GalleryCell *)[self.flowCollection dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];

    if (indexPath.row < self.collectionData.count) {

        CellDetails *dets = [self.collectionData objectAtIndex:indexPath.row];

        NSURL *mainImageURL = [NSURL URLWithString:dets.imageURL];

        cell.image.contentMode = UIViewContentModeScaleAspectFill;
        cell.image.clipsToBounds = YES;

        [cell.image setImageWithURL:mainImageURL placeholderImage:nil];
    }

    return cell;
}

我相信我已经正确地设置了它。但应用程序完全随机崩溃(EXC_BAD_ACCESS),有时会留下此堆栈跟踪:

enter image description here

日志区域中没有其他消息。我尝试设置异常断点,但每次发生此崩溃时,都会显示此堆栈跟踪。有谁知道可能是什么问题?

3 个答案:

答案 0 :(得分:2)

如果有人正在寻找答案,我已经解决了问题并回答了与同一问题相关的另一个问题。你可以找到它here。希望它有所帮助!

答案 1 :(得分:1)

您是否注册了CollectionViewCells?

如果你这样做了,

dequeueReusableCellWithReuseIdentifier:forIndexPath:
如果没有要重复使用的单元格,

应该为您创建一个单元格。

在你的

- (void)viewDidLoad

使用CollectionView注册您的单元格

UINib *galleryCellNib = [UINib nibWithNibName:@"GalleryCell" bundle:nil];
[self.collectionView registerNib:galleryCellNib forCellWithReuseIdentifier:@"Gallery_Cell"];

[self.collectionView registerClass:[GalleryCell class] forCellWithReuseIdentifier:@"Gallery_Cell"];

取决于您使用的是xib还是仅使用类

答案 2 :(得分:0)

当InterfaceBuilder中的一个连接不再有效时(自定义单元类时 - 通过继承UITableViewCell或UICollectionViewCell),也可能发生这种情况。例如:如果文件中的控件名称已更改,但未在InterfaceBuilder中更新与其的连接。