49 votes

Erreur dequeueReusableCellWithIdentifier dans mon UITableView sous iOS5

Je reçois cette erreur dans iOS 5

-[UITableView dequeueReusableCellWithIdentifier:forIndexPath:]: unrecognized selector sent to instance 0xa217200

Cependant, je ne reçois aucune erreur dans iOS 6. Comment puis-je résoudre ce problème? Voici mon code:

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"MyCell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; /// SIGABRT error

    if (!cell)
    {
        cell = [[UITableViewCell alloc]
        initWithStyle: UITableViewCellStyleSubtitle
        reuseIdentifier: CellIdentifier];
    }

    return cell;
}
 

129voto

Nayan Points 2307

EDIT : Cette méthode a été ajoutée récemment dans iOS6 + SDK.

 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
 

Mais dans iOS 5, pour créer une instance de UITableViewCell nous utilisons généralement cette méthode: -

 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
 

Dans iOS 5, vous n'avez pas besoin de paramètre supplémentaire que vous avez utilisé dans iOS 6. (forIndexPath :).

Alors changez votre méthode. Ça va marcher.

7voto

Murray Sagal Points 1053

Voici pourquoi vous obtenez l'erreur. Conformément à la documentation iOS 6.0, les états de référence de classe UITableView que dequeueReusableCellWithIdentifier: est disponible dans iOS 2.0 et versions ultérieures et dequeueReusableCellWithIdentifier:forIndexPath: sont disponibles dans iOS 6.0 et versions ultérieures.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X