所以我一直在 Xcode4 中为一个具有多个集合视图(确切地说是 4 个)的应用程序工作
我有两个视图,一个底部“主”视图,其中包含一个填充屏幕的大型集合视图,以及一个较小的“抽屉”视图,可以从侧面拉出并包含三个狭窄的水平滚动集合视图堆叠一个在另一个之上。
我一直在使用cellforitematpath
方法中的标签和 if 语句填充单元格。在 xcode 4 中,以及我在 xcode 4 中制作的一个项目,现在正在 xcode 5 中打开,这是可行的。我在底部收到一条警告(不是错误)control may reach end of non void function
,但我仍然能够构建和运行并且它可以工作。
在 xcode 5 的一个新项目中,相同的代码将“控制可能到达非 void 函数的末尾”作为错误并且不允许构建和运行。这是无休止的令人沮丧。我不想返回一个单元格,除非有一个数组要填充单元格。我什至不知道'return nil'是什么意思。有人对如何关闭它有任何建议吗?
以下绝对不漂亮,输入风险自负:
- (UICollectionViewCell *) collectionView:(UICollectionView *)collectionView
cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
if (collectionView.tag == 0){
static NSString *CellIdentifier = @"subjectCell";
SubjectCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];
AHSubject *cellSubject = [self.subjectsArray objectAtIndex:indexPath.row];
[[cell subjectLabel]setText:cellSubject.name];
return cell;
}
else if (collectionView.tag == 1){
if ([categoryArray count] > 0) {
static NSString *CellIdentifier = @"categoryCell";
CategoryCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];
AHCategory *cellCategory = [categoryArray objectAtIndex:indexPath.row];
[[cell categoryLabel]setText:cellCategory.name];
return cell;
}
}
else if (collectionView.tag == 2){
if ([subcategoryArray count] > 0) {
static NSString *CellIdentifier = @"subcategoryCell";
GroupCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];
AHCardGroup *cellSubcategory = [subcategoryArray objectAtIndex:indexPath.row];
[[cell subcategoryLabel]setText:cellSubcategory.name];
return cell;
}
}
else {
if ([cardArray count] > 0) {
static NSString *CellIdentifier = @"cardCell";
CardCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];
AHCard *cellCard = [cardArray objectAtIndex:indexPath.row];
[[cell frontLabel]setText:cellCard.front];
return cell;
}
}
// return nil;
}