关于Component的OnEnter在何时调用的问题

这是组件类,然后里面重写了OnEnter方法,在OnEnter中执行initPath()初始化动画

class ComMove : public cocos2d::Component{
public:
    static ComMove * create(std::vector path);
    virtual void onEnter() override;
    void startMove();
    
protected:
    ComMove(std::vector path);//构造方法
    
private:
    std::vector _path;
    cocos2d::Point _startPos;
    cocos2d::Action * _moveActions;
    
    void initPath(std::vector path);
    
};


```


然后cpp文件中的代码,startMove供外部调用。

void ComMove::initPath(std::vector path){
    
    if (path.size() == 0) {
        return ;
    }
    
    Vector actionsArray;
    _startPos = path.at(0);
    for (unsigned int i = 1; isetPosition(_startPos);
    CCLOG("startMove");
    onwer->runAction(_moveActions);
    
}


```


最后是调用部分:

 auto comMove = ComMove::create(_pathVec);
    
    monster->addComponent(comMove);

    addChild(monster,2);
    
    comMove->startMove();



```


然后就执行就报错了,在控制台输出了一下,发现initPath()在OnEnter之后执行,但是
if (!_moveActions) {
        CCLOG("Move actions are empty!");
        return;
    }
里面的语句却没有被执行,这是怎么回事??
求大神解答~