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.

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top