我有一个collectionView,其中每个第5个单元格必须与其他单元格不同。
我写了以下代码:
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
if ((indexPath.row + 1) % 5 == 0) {
return CGSizeMake(screenRect.size.width, screenRect.size.height/5);
}
return CGSizeMake(screenRect.size.width/2, screenRect.size.height/2);
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
if ((indexPath.row + 1) % 5 == 0 ) {
NSLog(@"iAdCellWithIndex:%ld", (long)indexPath.row);
CustomCollectionViewCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"CustomCell" forIndexPath:indexPath];
if (!cell)
cell = [[CustomCollectionViewCell alloc] init];
return cell;
}
ImageThumbCell * cell1 = [collectionView dequeueReusableCellWithReuseIdentifier:@"ImageCell" forIndexPath:indexPath];
if (!cell1)
cell1 = [[ImageThumbCell alloc] init];
[cell1 setResultElement:intermediateResults_[indexPath.row]];
return cell1;
}
第1个循环(前5个元素)看起来很好,但是然后加载第6个元素我得到了一个例外:
MyApp[1503:888411] -[CustomCollectionViewCell resultElement]: unrecognized selector sent to instance 0x1a9882a0
我不明白 - 为什么?第6个单元格(索引为5的单元格)必须是ImageThumbCell类,而不是CustomCollectionView类。
任何人都可以解释这个错误吗?
对不起英语不好。老实说,我正在学习:) //谢谢
答案 0 :(得分:2)
您发布的代码是调用setResultElement方法,而不是resultElement。因此,该代码不应该产生您所看到的崩溃。
您创建单元格的代码似乎很合理。在每个第5个单元格上,您尝试将不同类型的单元格出列,如果没有可用单元格,则为其他单元格类型分配/初始化。这是有道理的。
我的猜测是你的错误在代码的其他地方。您是否尝试在其他地方读取单元格的resultElement属性的值?