该死的setUserData和setUserObject

来源:互联网 发布:风险指数矩阵 编辑:程序博客网 时间:2024/05/16 15:38


     for (int i = 0; i < 10; i++)    {        auto sp = Sprite::create("CloseNormal.png");        sp->setTag(10);        Value v(i);        auto pointer = &v;        sp->setUserData(pointer);        log("the userdata is %d.", (*(Value *)sp->getUserData()).asInt());        sp->setTag(i * 5);        sp->setUserObject(CCInteger::create(i));        sp->setUserData(CCInteger::create(i));        sp->setUserData(CCString::create("Hellos"));                Value* val = new Value(i);        sp->setUserData(val);        vec1.pushBack(sp);        addChild(sp);    }


如果想要传入setUserData里面的数据(Value)还是要用new来创建这个奇葩的数据,不然会在按钮回调调用这个userData的时候出现很大的问题,我勒个去。

大神说这是野指针错误,作用域出去前该值有效,作用于出去后就野指针了。





0 0