在响应节点删除事件的时候,移除和添加节点操作必定报错

    local im = ccui.ImageView:create()
    view:addChild(im);
    im:setName("im1")
    local node = ccui.ImageView:create();
     local function onNodeEvent(event)
        if "exitTransitionStart" == event then
            view:removeChildByName("im1")
            local im = ccui.ImageView:create()
            view:addChild(im);
            im:setName("im2")
        end            
    end
    node:registerScriptHandler(onNodeEvent)
    view:addChild(node);
    local function fun()
        node:removeFromParent()
    end
    scheduler.performWithDelayGlobal(fun,5)

这段代码在5秒后删除node的时候,响应exitTransitionStart事件中删除一个node并且添加另外一个node必定报错。错误在node的析构函数中 CCASSERT(!_running, “Node still marked as running on node destruction! Was base class onExit() called in derived class onExit() implementations?”);
版本是cocos3.3 不知道后续版本是否也有这个错误

好了找到原因了,派发exitTransitionStart事件里做了remove操作 导致childIndex发生了改变,而最后在remove函数里用的erase的childIndex并没有更新 而是用的传参,所以此刻的childIndex要么对应的是正在使用的node要么就是个野指针了