UICollectionView: selector no reconocido enviado a instancia

Estoy recibiendo este error. *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UICollectionViewCell label]: unrecognized selector sent to instance 0x1eead660' Estoy usando un file nib como mi celda y trato de mostrar las celdas correctamente. Estoy adivinando que no estoy devolviendo las células correctamente, pero no estoy muy seguro. Cualquier ayuda será apreciada.

 - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { static NSString *cellIdentifier = @"Cell"; [self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"Cell"]; Cell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:cellIdentifier forIndexPath:indexPath]; NSMutableArray *data = [sections objectAtIndex:indexPath.section]; cell.label.text = [data objectAtIndex:indexPath.item]; return cell; } 

UICollectionViewCell no tiene una propiedad llamada label .

Tal vez querías decir:

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

Suponiendo que haya subclasificado UICollectionViewCell , agregado una label y haya llamado a su subclass Cell .

Es probable que su file de nib necesite conectarse a su class personalizada (¿"Celda"?) De alguna manera. Hecho eso, llamarías:

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

Tal como está ahora, UICollectionViewCell object vainilla UICollectionViewCell de dequeue... y cuando intentas usarlo como una Cell , tienes problemas.

Por lo general, su código de registerClass no debería ir en cellForItemAtIndexPath . Solo se debe llamar una vez por visión, por ej.

 static NSString *cellIdentifier = @"Cell"; @implementation YourCollectionViewController // ... - (void)viewDidLoad { [self.collectionView registerClass:[Cell class] forCellWithReuseIdentifier:@"Cell"]; } // ... @end