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.

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top