UITableViewCell 子类抛出一个无法识别的选择器发送到实例

Posted

技术标签:

【中文标题】UITableViewCell 子类抛出一个无法识别的选择器发送到实例【英文标题】:UITableViewCell subclass throwing an unrecognized selector sent to instance 【发布时间】:2015-09-11 13:11:48 【问题描述】:

我的 UITableViewCell 给出了一个 -[UITableViewCell nameTeam]: unrecognized selector sent to instance。

我创建了一个带有 UITableViewCell 和 UILabel 的 PlayerStatsTableViewCell.xib。将自定义类设置为“PlayerStatsTableViewCell”,并将其表视图单元格标识符设置为“playerStats”

PlayerStatsTableViewCell.h

@interface PlayerStatsTableViewCell : UITableViewCell
@property (weak, nonatomic) IBOutlet UILabel *nameTeam;
@end

PlayerStatsTableViewCell.m

@implementation PlayerStatsTableViewCell
@synthesize nameTeam;

- (void)awakeFromNib 
    // Initialization code


- (void)setSelected:(BOOL)selected animated:(BOOL)animated 
    [super setSelected:selected animated:animated];

    // Configure the view for the selected state

在我的 PlayerStatsTableViewController 中,cell.nameTeam 抛出错误

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
    PlayerStatsTableViewCell *cell = (PlayerStatsTableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"playerStats"];
    [tableView registerNib:[UINib nibWithNibName:@"PlayerStatsTableViewCell" bundle:nil] forCellReuseIdentifier:@"playerStats"];

    cell.nameTeam.text = @"PLEASE";

    return cell;

PlayerStatsTableViewCell.xib 显示自定义类和标识符

错误信息

来自 Storyboard 的 PlayerStatsTableViewController

【问题讨论】:

不需要写"[tableView registerNib:[UINib nibWithNibName:@"PlayerStatsTableViewCell" bundle:nil] forCellReuseIdentifier:@"playerStats"];" 【参考方案1】:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
    PlayerStatsTableViewCell *cell = (PlayerStatsTableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"playerStats"];
    if (cell == nil) 
          NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"PlayerStatsTableViewCell" owner:self options:nil];
          cell = (PlayerStatsTableViewCell *)[nib objectAtIndex:0];
    

    cell.nameTeam.text = @"PLEASE";

    return cell;

【讨论】:

以上是关于UITableViewCell 子类抛出一个无法识别的选择器发送到实例的主要内容,如果未能解决你的问题,请参考以下文章

从 UITableViewCell 呈现 UIViewController:addChildViewController 无法识别的选择器发送到实例

-[UITableViewCell setLayoutMargins:]:无法识别的选择器发送到 iphone 4 中的实例错误

Swift UITableViewCell detailTextLabel.text 抛出错误“致命错误:无法打开 Optional.None”

[UITableViewCell otherFeeLblName]:无法识别的选择器发送到实例 0x7fc45009a000

无法在 Swift 中设置 UITableViewCell 中使用的 UIView 子类的背景颜色

UITableViewCell 在首次加载时无法正确呈现