Проблема создания подкласса UITableViewCell
-
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];
И посмотрите, что произойдет.