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的時候出現很大的問題,我勒個去。
大神說這是野指針錯誤,作用域出去前該值有效,作用於出去後就野指針了。