Problema da subclasse UITableViewCell
-
23-08-2019 - |
Pergunta
Eu tenho uma classe A que herda UITableViewCell (para personalizar uma célula de tabela). Tornou-membros dizem x que é um UILabel.
Agora, se eu quiser valores definidos como a.x.text = "algum texto" no método cellForRowAtIndexPath, eu estou recebendo erro do compilador "Erro de membro x na célula que é do tipo não-classe UITableViewCell".
Você poderia por favor deixe-me saber como posso resolver este problema?
Graças.
Solução
Em primeiro lugar, certifique-se de sua propriedade é definida corretamente:
@interface A : UITableViewCell {
UILabel *x;
}
@property (nonatomic, retain) IBOutlet UILabel *x;
@end
Em seguida, verifique se você incluiu A.H. em sua exibição de tabela de fonte de dados e certifique-se que você está lançando a célula de 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;
}
Outras dicas
Certifique-se de adicionar x como uma propriedade de sua subclasse:
@interface ACell : UITableViewCell {
UILabel *X;
}
@property (readonly, nonatomic) UILabel* X;
Tente usar:
[[a x] setText:@"your text];
E ver o que acontece.