Problema di sottoclassi UITableViewCell
-
23-08-2019 - |
Domanda
Ho una classe che eredita Un UITableViewCell (per personalizzare una cella di tabella). Ha membri dicono x che è un UILabel.
Ora, se voglio impostare valori come a.x.text = "del testo" nel metodo cellForRowAtIndexPath, sto ottenendo errore del compilatore "errore per il membro x nella cella che è di tipo non-class UITableViewCell".
La prego di farmi sapere come posso risolvere questo problema?
Grazie.
Soluzione
Per prima cosa, assicurarsi che la proprietà è definita in modo corretto:
@interface A : UITableViewCell {
UILabel *x;
}
@property (nonatomic, retain) IBOutlet UILabel *x;
@end
Quindi assicuratevi di aver incluso A.h nella vista tabella origine dati, e assicurarsi che si sta gettando la cellula di 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;
}
Altri suggerimenti
Assicurarsi di aggiungere x come proprietà alla sottoclasse:
@interface ACell : UITableViewCell {
UILabel *X;
}
@property (readonly, nonatomic) UILabel* X;
Provare a utilizzare:
[[a x] setText:@"your text];
e vedere cosa succede.