CCTableView一个疑问

void TableView::_moveCellOutOfSight(TableViewCell *cell)
{
if(_tableViewDelegate != nullptr) {
_tableViewDelegate->tableCellWillRecycle(this, cell);
}

_cellsFreed.pushBack(cell);
_cellsUsed.eraseObject(cell);
_isUsedCellsDirty = true;

_indices->erase(cell->getIdx());
cell->reset();

if (cell->getParent() == this->getContainer())
{
    this->getContainer()->removeChild(cell, true);;
}

}

格子加到空闲数组, 但后来双调用removeChild从父节点删除了,还能用吗?
既然要加到空闲数组,在需要时可以复用,可是为什么后来要调用删除removeChild? 这样不是不用用了么

在_cellsFreed.pushBack(cell)时已经增加了引用,所以在removeChild时是不会被释放的

原来_cellsUsed.pushBack(cell); 还有addChild内部也会push一次, 谢谢了
void TableView::_addCellIfNecessary(TableViewCell * cell)
{
if (cell->getParent() != this->getContainer())
{
this->getContainer()->addChild(cell);
}
_cellsUsed.pushBack(cell);
_indices->insert(cell->getIdx());
_isUsedCellsDirty = true;
}