Проблема создания подкласса UITableViewCell

StackOverflow https://stackoverflow.com/questions/894612

  •  23-08-2019
  •  | 
  •  

Вопрос

У меня есть класс A, который наследует UITableViewCell (для настройки ячейки таблицы).Его участники говорят x, который является UILabel.

Теперь, если я хочу установить значения типа a.x.text = «некоторый текст» в методе cellForRowAtIndexPath, я получаю ошибку компилятора «ошибка для члена x в ячейке, которая имеет тип, не относящийся к классу UITableViewCell».

Не могли бы вы сообщить мне, как я могу решить эту проблему?

Спасибо.

Это было полезно?

Решение

Сначала убедитесь, что ваше свойство определено правильно:

@interface A : UITableViewCell {
  UILabel *x;
}

@property (nonatomic, retain) IBOutlet UILabel *x;

@end

Затем убедитесь, что вы включили A.h в источник данных табличного представления, и убедитесь, что вы приводите ячейку к типу 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;
}

Другие советы

Обязательно добавьте x в качестве свойства вашего подкласса:

@interface ACell : UITableViewCell {
      UILabel *X;
}

@property (readonly, nonatomic) UILabel* X;

Попробуйте использовать:

[[a x] setText:@"your text];

И посмотрите, что произойдет.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top