Problema de la subclasificación UITableViewCell
-
23-08-2019 - |
Pregunta
Tengo una clase que hereda una UITableViewCell (para personalizar una celda de la tabla). Tiene miembros dicen x que es un UILabel.
Ahora, si quiero establecer valores como a.x.text = "texto" en el método cellForRowAtIndexPath, estoy consiguiendo error del compilador "error de miembro de x en la celda que es del tipo no-clase UITableViewCell".
Podría, por favor hágamelo saber cómo puedo solucionar este problema?
Gracias.
Solución
En primer lugar, asegúrese de que su propiedad se define correctamente:
@interface A : UITableViewCell {
UILabel *x;
}
@property (nonatomic, retain) IBOutlet UILabel *x;
@end
A continuación, asegúrese de que ha incluido en su A.h vista de la tabla de origen de datos, y asegurarse de que está echando la celda al tipo 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;
}
Otros consejos
Asegúrese de añadir x como una propiedad a su subclase:
@interface ACell : UITableViewCell {
UILabel *X;
}
@property (readonly, nonatomic) UILabel* X;
Trate de usar:
[[a x] setText:@"your text];
y ver qué pasa.