提交一个0.13.0-beta版本的bug

  • 本帖最后由 TonyTonyWu 于 2012-4-27 13:44 编辑 *

在cocos2dx的网站上,我实在没有找到那儿可以提,所以先在这儿提起,大家看看是不是问题:
我用的是vs2010
bug位于
CCTouchHandler.cpp
bool CCTouchHandler::initWithDelegate(CCTouchDelegate *pDelegate, int nPriority)
{
CCAssert(pDelegate != NULL, “touch delegate should not be null”);
m_pDelegate = pDelegate;
dynamic_cast<CCObject *>(pDelegate)->retain();
m_nPriority = nPriority;
m_nEnabledSelectors = 0;
return true;
} 其中 dynamic_cast<CCObject *>(pDelegate)->retain();
会出错,大概是说引用为0,就去调用了CCObject的retain()方法,我想可能是因为pDelegate的父类不是CCObject吧, 所以我加上了

if(dynamic_cast<CCObject*>(pDelegate)){
dynamic_cast<CCObject*>(pDelegate)->retain();
}else{
CCLOG("%s",“the pDelegate can not cast be CCObject”);
}
同理

CCTouchHandler::~CCTouchHandler(void)
{
if (m_pDelegate)
{
if(dynamic_cast<CCObject*>(m_pDelegate)){
dynamic_cast<CCObject*>(m_pDelegate)->release();
}
}
}

也加上就ok了