The problem:
when call setUserObject there is not retain the newobject point and release old object point ,so when destory the node the userobject maybe destoryed.
the right code is :
void CCNode::setUserObject(CCObject *pUserObject)
{
CC_SAFE_RETAIN(pUserObject);
CC_SAFE_RELEASE(m_pUserObject);
m_pUserObject = pUserObject;
}