TableView在reloadData上崩溃 - '无法识别的选择器发送到实例'

时间:2014-11-05 14:40:21

标签: ios objective-c iphone uitableview

在我的tableView的{​​{1}}方法中,我为第一行使用自定义单元格,为其他行使用常规cellForRowAtIndexPath

UITableViewCell

}

然后我调用一个更改isLightTheme并重新加载数据的方法:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *MyIdentifier = @"Cell";

    if (indexPath.section == 0){
        CustomTableViewCell *cell = (CustomTableViewCell *)[tableView dequeueReusableCellWithIdentifier:MyIdentifier];

        if (cell == nil)
        {
            NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustomTableViewCell" owner:self options:nil];
            cell = [nib objectAtIndex:0];
        }

        cell.titleLabel.text = @"Custom cell";

        if (isLightTheme){
           cell.titleLabel.textColor = [UIColor blackColor];
        }
        else{
           cell.titleLabel.textColor = [UIColor whiteColor];
        }

        return cell;
    }
    else{
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
        if (cell == nil) {
            cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault  reuseIdentifier:MyIdentifier];
        }

        cell.textLabel.text = @"Other cells";

        if (isLightTheme){
            cell.textLabel.textColor = [UIColor blackColor];
        }
        else{
            cell.textLabel.textColor = [UIColor whiteColor];
        }

        return cell;

    }

...但我的应用程序在这一行崩溃了:

-(void)changeTheme{

   isLightTheme = false;
   [self.myTable reloadData];
}

错误:

  

' - [UITableViewCell titleLabel]:发送到实例的无法识别的选择器

我不明白发生了什么......当 cell.titleLabel.text = @"Custom cell"; 首次加载时,表格加载完全正常(isLightTheme首先设置为true)但是当我更改{{ 1}}和ViewController它崩溃了。有人可以帮帮我吗?感谢。

1 个答案:

答案 0 :(得分:3)

您的重用标识符对于两个单元格都是相同的。自定义和默认。为每个使用唯一值。