我有一个继承UITableViewCell的类A(用于自定义表格单元格)。它有成员说x是UILabel。
现在,如果我想在cellForRowAtIndexPath方法中设置像a.x.text =“some text”这样的值,我会收到编译器错误“单元格中的成员x的错误,这是非类型的UITableViewCell”。
您能否告诉我如何解决这个问题?
感谢。
答案 0 :(得分:2)
首先,确保您的属性已正确定义:
@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;
}
答案 1 :(得分:0)
请务必将x作为属性添加到子类中:
@interface ACell : UITableViewCell {
UILabel *X;
}
@property (readonly, nonatomic) UILabel* X;
答案 2 :(得分:0)
尝试使用:
[[a x] setText:@"your text];
看看会发生什么。