我正在尝试获取一个表格以显示名称和排名列表。在每个单元格中,我希望有2个UILabel作为子视图 - 一个用于显示等级的UILabel和一个用于显示名称的UILabel。
我创建了一个UITableViewCell子类,它有两个属性,如下所示:
@interface MyTableViewCell : UITableViewCell
@property UILabel* rankLabel;
@property UILabel* nameLabel;
除了@synthesize之外,我没有为每个属性添加任何内容到MyTableView的.m实现文件中。实现文件的其余部分就是xCode在创建UITableViewCell子类时为您提供的内容。
然后,在包含该表的masterViewController中,我有以下内容:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
MyTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
Person *object = _objects[indexPath.row];
if (cell == nil) {
cell = [[MyTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
cell.nameLabel = [[UILabel alloc] initWithFrame:CGRectMake(cell.frame.size.height, 0, cell.frame.size.width - cell.frame.size.height, cell.frame.size.height)];
cell.nameLabel.text = object.name;
[cell addSubview:cell.nameLabel];
NSString* rankString = [object.rank stringValue];
cell.rankLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, cell.frame.size.height, cell.frame.size.height)];
cell.rankLabel.text = rankString;
[cell addSubview:cell.rankLabel];
}
当我在调试中运行它时,它会到达我设置cell.nameLabel并分配它的第一行,并抛出以下错误:
[UITableViewCell setNameLabel:]: unrecognized selector sent to instance 0x108fa64c0
真的不明白为什么setNameLabel方法应该在这里遇到问题。有任何想法吗?提前谢谢。
答案 0 :(得分:3)
错误似乎告诉你确切的问题。它并没有说[MyTableViewCell setNameLabel:]
它说[UITableViewCell setNameLabel:]
您可能忘记将故事板中单元格的类更改为MyTableViewCell
...
编辑:不,他没有使用故事板,但崩溃显然似乎与错误类的单元格有关。
编辑:是的他是,或者至少Xcode正在为他做这件事。