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的时候出现很大的问题,我勒个去。
大神说这是野指针错误,作用域出去前该值有效,作用于出去后就野指针了。