Problème de sous-classement UITableViewCell
-
23-08-2019 - |
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.
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.