我有一个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
),有时会留下此堆栈跟踪:
日志区域中没有其他消息。我尝试设置异常断点,但每次发生此崩溃时,都会显示此堆栈跟踪。有谁知道可能是什么问题?
答案 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中更新与其的连接。