UITableViewCell无法识别的选择器到实例

时间:2014-08-13 19:29:09

标签: ios objective-c uitableview

我有一个UITableViewController,在cellForRow中有以下代码

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *CellIdentifier = [self.items objectAtIndex:indexPath.row];

    SettingsTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
    if (cell == nil) {
    cell = [[SettingsTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    cell.avatarPhoto.image = [UIImage imageNamed:@"frownFace.png"];

    return cell;
}

在SettingsTableViewCell中,我将avatarPhoto声明为以下内容:

@property (nonatomic, strong) IBOutlet UIImageView *avatarPhoto;

我的故事板连接看起来像这样:

http://cl.ly/image/3k1N3e0c2V2w

由于某种原因,我在将图像附加到UIImageView时出现以下错误:

'NSInvalidArgumentException', reason: '-[UITableViewCell avatarPhoto]: unrecognized selector sent to instance

有什么想法吗?

EDITS

我的单元格标识符使用NSArray按以下方式构建:

  self.items = @[@"Cell", @"firstSep", @"accountManagement", @"realName", @"secondSep", @"friends", @"find", @"inviteText", @"inviteViaEmail", @"thirdSep", @"more", @"feedback", @"terms", @"privacy", @"attribution", @"footerSep"];

这就是我的Cell在故事板中的样子:

http://cl.ly/image/0d3L3E2W3E1n

1 个答案:

答案 0 :(得分:1)

由于错误显示为-[UITableViewCell avatarPhoto]:,因此您在出列单元格时获取UITableViewCell而非SettingsTableViewCell实例。在故事板中检查类

转到attribute inspector,然后选择cell并提供cell identifiercell class name

enter image description here

enter image description here

SettingsTableViewCell *cell = (SettingsTableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"yourCellIdentifier" forIndexPath:indexPath];

此外,您无需编写

 if (cell == nil) {
    cell = [[SettingsTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }
如果没有,

dequeueReusableCellWithIdentifier保证提供细胞实例。