关于 tableView 返回 cell 的问题

objc    if(indexPath.row == self.items.count-1)
    {
      cell = [tableView dequeueReusableCellWithIdentifier:QuestionCellIdentifier  forIndexPath:indexPath];
    }
    else
    {
      cell = [tableView dequeueReusableCellWithIdentifier:CommentCellIdentifier forIndexPath:indexPath];
    }
    return cell;

objc      cell = [tableView dequeueReusableCellWithIdentifier:CommentCellIdentifier forIndexPath:indexPath];

    if(indexPath.row == self.items.count-1)
    {
      cell = [tableView dequeueReusableCellWithIdentifier:QuestionCellIdentifier forIndexPath:indexPath];
    }
    return cell;

我认为这两种写法结果上应该没有区别,但在我的项目中,返回的结果却是不同的,第一种写法,返回了正确的结果,第二种写法,进入了判断语句中,然后返回了QuestionCell,但是在显示上,却显示的是CommentCell,然后点击,又刷新成了QuestionCell,我确认是在主线程中执行的。

请问为什么会是这种结果?我猜测是dequeueReusableCellWithIdentifier:indexPath中进行了预加载,是这样么?

查看回复