将整数作为节中的项数返回时出错

时间:2012-11-18 19:03:01

标签: objective-c ios xcode4.5 uicollectionview uicollectionviewcell

我有一个iPad应用程序,使用Storyboard,Tab Bar和XCode 4.5。我的一个场景在左上象限中有一个UITableView,在右上象限中有标签和UITextBox。

当我点击第二个标签时,我将进入上述场景。这是代码:

- (void)viewDidLoad  {

    [super viewDidLoad];

    [self.collectionView registerClass:[Cell class] forCellWithReuseIdentifier:@"MY_CELL"];
}

-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {

    return 4;
}

- (NSInteger)collectionView:(UICollectionView *)view numberOfItemsInSection:(NSInteger)section {

    return 4;
}

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

    Cell *cell = [cv dequeueReusableCellWithReuseIdentifier:@"MY_CELL" forIndexPath:indexPath];
    cell.label.text = [NSString stringWithFormat:@"%d",indexPath.item];
    return cell;
}

这是界面定义:

@interface ClientViewController : UIViewController <UICollectionViewDelegate, UICollectionViewDataSource> {

}

这是错误:

  

* 由于未捕获的异常终止应用&#39; NSInvalidArgumentException&#39;,原因:&#39; - [UIView   collectionView:numberOfItemsInSection:]:发送到的无法识别的选择器   实例0x7d925b0&#39;

如您所见,我对numberOfSectionsInCollectionView使用了相同的代码。我研究过SO和Google,但没有发现任何适用的内容。

我做错了什么?

1 个答案:

答案 0 :(得分:5)

有两个代表要设置。一个是delegate,一个是dataSource。通常,两者都应设置为指向视图控制器(即,在大多数情况下为self)。