selector no reconocido con celda de table personalizada

Tengo una celda de tabla personalizada. Pero cuando quiero llamar a esta celda en mi cellForRowAtIndexpath, da el siguiente error.

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITableViewCell lblPosition]: unrecognized selector sent to instance 0xa62a600' 

Comprobé 100 veces si todo está conectado correctamente y se nombra correctamente, pero aún no encuentra lo que está mal. Esto es lo que estoy haciendo en el código.

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *simpleTableIdentifier = @"KlassementCell"; KlassementCell *cell = (KlassementCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier]; if (cell == nil) { NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"KlassementCell" owner:self options:nil]; cell = [nib objectAtIndex:0]; } // ask NSFetchedResultsController for the NSMO at the row in question Klassement *klassement = [self.fetchedResultsController objectAtIndexPath:indexPath]; // Then configure the cell using it ... NSString *pointDiff = [NSString stringWithFormat:@"%@", klassement.goalsDiff]; NSLog(@"position %@",klassement.position); NSLog(@"name %@",klassement.name); cell.lblPosition.text = klassement.position; cell.lblName.text = klassement.name; cell.lblgamesPlayed.text = klassement.gamesPlayed; cell.lblGamesWon.text = klassement.gamesWon; cell.lblGamesTied.text = klassement.gamesTied; cell.lblGamesLost.text = klassement.gamesLost; cell.lblGoalsPos.text = klassement.goalsPos; cell.lblGoalsNeg.text = klassement.goalsNeg; cell.lblGoalsDiff.text = pointDiff; cell.lblPoints.text = klassement.points; return cell; } 

¿Alguien puede ayudar?

Saludos cordiales.

Tratar

 if ((cell == nil) || (![cell isKindOfClass: KlassementCell.class])) { 

La celda devuelta en la queue puede no ser KlassementCell.

¿Has establecido la class de 0 object Index en "KlassementCell" nib como KlassementCell y asignado todas las subvistas?

Si no, hazlo y puede funcionar.

tal vez esto ayude en su método viewDidLoad (o cualquier otro lugar para la configuration …):

 UINib* myCellNib = [UINib nibWithNibName:@"KlassementCell" bundle:nil]; [tableView registerNib:myCellNib forCellReuseIdentifier:@"KlassementCell"]; 

y luego instanciar la celda como esta

  cell = (KlassementCell*)[myCellNib instantiateWithOwner:nil options:nil]; 

myCellNib debería estar disponible en el scope de class

Asegúrese de que en la punta que la class de la celda esté configurada en "KlassementCell" Y también que el identificador esté establecido en "KlassementCell".

No debería necesitar hacer nada más ya que solo usa 1 tipo de tableviewcell y solo 1 identificador en cellForRowAtIndexPath

El identificador debe ser exactamente el mismo que el nombre de la class, por lo que ambos deben ser "KlassementCell". De esa forma, no hay UIcells regulares reutilizables en la queue. Es también por eso que if ((cell == nil) || (![cell isKindOfClass: KlassementCell.class])) { funciona porque te aseguras de no asignar cosas a properties que no existen en una celda normal como lblPosition, lblName y lblgamesPlayed ..