Problem von Subklassifizieren UITableViewCell
-
23-08-2019 - |
Frage
ich eine Klasse A, die UITableViewCell erbt (eine Tabellenzelle anpassen). Es hat Mitglieder x sagen, das ist ein UILabel.
Nun, wenn ich wie a.x.text = „some text“ in der cellForRowAtIndexPath Methode, um Werte will, erhalte ich Compiler-Fehler „Fehler für Element x in der Zelle, die nicht-Klasse Typ UITableViewCell ist“.
Könnten Sie bitte lassen Sie mich wissen, wie kann ich dieses Problem beheben?
Danke.
Lösung
Stellen Sie zunächst sicher, dass Ihre Eigenschaft definiert ist richtig:
@interface A : UITableViewCell {
UILabel *x;
}
@property (nonatomic, retain) IBOutlet UILabel *x;
@end
Dann stellen Sie sicher, A. h in der Tabelle Ansicht Datenquelle aufgenommen haben, und stellen Sie sicher, dass Sie die Zelle sind Casting A eingeben:
- (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;
}
Andere Tipps
Seien Sie sicher, dass x als eine Eigenschaft zu Ihrer Unterklasse hinzuzufügen:
@interface ACell : UITableViewCell {
UILabel *X;
}
@property (readonly, nonatomic) UILabel* X;
Versuchen Sie es mit:
[[a x] setText:@"your text];
Und sehen, was passiert.