Problème d'allocation de UITableViewCell – la cellule n'est pas nulle

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSSsortingng *CellIdentifier = @"Cell2"; UILabel *titleLabel; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; titleLabel = [[UILabel alloc]initWithFrame:CGRectMake(5, 5, 300, 20)]; [cell.contentView addSubview:titleLabel]; titleLabel.tag = 0011; } else { titleLabel = (UILabel *)[cell.contentView viewWithTag:0011]; } // Configure the cell... NSMutableSsortingng *title = [NSMutableSsortingng ssortingngWithSsortingng:@"Customer: "]; [title appendSsortingng:[titles objectAtIndex:indexPath.row]]; titleLabel.text = title.copy; titleLabel.backgroundColor = [UIColor clearColor]; titleLabel.textAlignment = UITextAlignmentLeft; titleLabel.font = [UIFont systemFontOfSize:18.0]; 

Ma cellule n'est jamais nulle, et mon titleLabel, à cause de cela n'a jamais été alloué, bien que mes cellules soient générées. Je ne peux pas voir comment c'est possible. L'état if n'est jamais vrai, ce qui devrait être pour les cellules qui sont générées pour la première fois, mais mes cellules sont créées comme elles devraient l'être, sans mon titleLabel

Il semble que vous utilisiez iOS 5 (ou version ultérieure) et Storyboards.

Sous iOS 5 (ou ultérieur), si vous utilisez Storyboards et TableView Controller, la méthode dequeueReusableCellWithIdentifier: est garantie pour renvoyer une cellule (à condition que vous ayez défini une cellule avec l'identifiant donné dans le Storyboard).

Si tel est le cas, la solution consiste à créer entièrement la cellule de tableau personnalisée dans le Storyboard. Accédez à la vue Table dans votre Storyboard, select Content:Dynamic Prototypes et créez les Prototype Cells:1 du Prototype Cells:1 . Maintenant, organisez votre cellule graphiquement pour être exactement ce que vous voulez. Maintenant, click la cellule et définissez Identifier:Cell2 . Vous n'aurez plus besoin de créer l'label lors de l'exécution ni de vérifier si elle est nulle. Tous les détails, y compris comment referencer les labels que vous avez installées sont dans les notes de version iOS 5 (lien ci-dessous) ou dans de nombreux tutoriels sur le web.

Voir la section iOS 5 Notes de version Configuration des vues de table