Question

J'ai une classe A qui hérite UITableViewCell (pour personnaliser une cellule de table). Il a des membres disent x qui est un UILabel.

Maintenant, si je veux définir des valeurs comme a.x.text = « texte » dans la méthode cellForRowAtIndexPath, je reçois « erreur membre x dans la cellule qui est de type non-classe UITableViewCell » erreur du compilateur.

Pourriez-vous s'il vous plaît me faire savoir comment puis-je résoudre ce problème?

Merci.

Était-ce utile?

La solution

Tout d'abord, assurez-vous que votre propriété est correctement défini:

@interface A : UITableViewCell {
  UILabel *x;
}

@property (nonatomic, retain) IBOutlet UILabel *x;

@end

Ensuite, assurez-vous que vous avez inclus dans votre A.h vue de la table source de données, et assurez-vous la coulée de la cellule de type A:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  static NSString *cellIdentifier = @"cell";
  A *a = (A *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
  if (a == nil) {
    a = [[A alloc] initWithFrame:CGRectZero reuseIdentifier:cellIdentifier];
  }
  a.x.text = @"some text";
  return a;
}

Autres conseils

Assurez-vous d'ajouter x comme une propriété à votre sous-classe:

@interface ACell : UITableViewCell {
      UILabel *X;
}

@property (readonly, nonatomic) UILabel* X;

Essayez d'utiliser:

[[a x] setText:@"your text];

Et voir ce qui se passe.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top