TableView 在IOS平台上运行崩溃,在win32却正常咋回事,求遇到的大神支个招

class ChatView :public Layer, public TableViewDataSource, public TableViewDelegate
{
public:
virtual bool init();
CREATE_FUNC(ChatView);

void ChatTypeBtn(Ref* object,TouchEventType type);//


/* 必须实现的函数 */
// 当滑动tableview时触发该方法 参数为当前的tableview对象
virtual void scrollViewDidScroll(cocos2d::extension::ScrollView* view) {};
// 当tableview被放大或缩小时触发该方法  参数为当前tableview对象
virtual void scrollViewDidZoom(cocos2d::extension::ScrollView* view) {}
// 当cell被点击时调用该方法 参数为当前的tableview对象与被点击的cell对象
virtual void tableCellTouched(TableView* table, TableViewCell* cell);
// 设置tableview的Cell大小
virtual Size tableCellSizeForIndex(TableView *table, ssize_t idx);
// 获取编号为idx的cell
virtual TableViewCell* tableCellAtIndex(TableView *table, ssize_t idx);
// 设置tableview中cell的个数
virtual ssize_t numberOfCellsInTableView(TableView *table);

public:
Layout *_pLayout;
};

在Init中实现:
//创建一个talbleview 将datasource设置为当前的类的对象 tableview的显示区域大小为 300 * 300
TableView* tableView = TableView::create(this,Size(300,300));//this,Size(300, 300)

//设置tableview为水平方向  ScrollView::Direction::VERTICAL 为垂直,ScrollView::Direction::HORIZONTAL 为水平
tableView->setDirection(cocos2d::extension::ScrollView::Direction::VERTICAL);
//设置位置
tableView->setPosition(Vec2(visibleSize.width/2,visibleSize.height/3));
//设置代理对象
tableView->setDelegate(this);
tableView->setDataSource(this);

//填充顺序
tableView->setVerticalFillOrder(TableView::VerticalFillOrder::TOP_DOWN);
//添加tableview到当前layer
this->addChild(tableView);
//加载tableview
tableView->reloadData();

执行上面一段代码 在Xcode上 最终在下面函数第一行崩溃了。不知所以然了
void TableView::_updateCellPositions()
{
long cellsCount = _dataSource->numberOfCellsInTableView(this);
_vCellsPositions.resize(cellsCount + 1, 0.0);

if (cellsCount > 0)
{
    float currentPos = 0;
    Size cellSize;
    for (int i=0; i < cellsCount; i++)
    {
        _vCellsPositions* = currentPos;
        cellSize = _dataSource->tableCellSizeForIndex(this, i);
        switch (this->getDirection())
        {
            case Direction::HORIZONTAL:
                currentPos += cellSize.width;
                break;
            default:
                currentPos += cellSize.height;
                break;
        }
    }
    _vCellsPositions = currentPos;//1 extra value allows us to get right/bottom of the last cell
}

}

屏蔽就OK了 不影响你任何东西

我的是3.2 屏蔽之后
在这行里还是会崩溃呢?
//加载tableview
tableView->reloadData();

void TableView::_updateCellPositions()
{
long cellsCount = _dataSource->numberOfCellsInTableView(this); //崩溃在此处呢


}

是什么原因呢

我尝试了一下,如果这个类作为一个场景跳转就没问题了,但是这个类如果作为一个层添加到其他场景内,就会出现上述的bug。具体没搞懂。。

在安卓平台上运行崩溃吗 :11::11::11: