刚开始学习iOS开发,今天用到了UICollectionView,遇到了点问题。
自定义了一个PortalViewCell,当然继承于UICollectionViewCell,然后在故事版中把它和cell关联起来。
PortalViewCell中提供了一个公有方法:
-(void) setupCellView;
接着在 cellForItemAtIndexPath中编写:
1 - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { 2 PortalViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:reuseIdentifier forIndexPath:indexPath]; 3 [cell setupCellView]; 4 5 return cell; 6 }
编译完成,正确无误,运行起来 duang~挂掉了,报错信息
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UICollectionViewCell setupCellView]: unrecognized selector sent to instance 0x7fd7535df8c0'
找了好久,没天理啊,PortalViewaCell有这个方法啊!!!!!又看了看发现viewDidLoad中有这么一句话:
// Register cell classes [self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:reuseIdentifier];
这是搞什么?注册cell类?删掉,重新运行就OK了。