dynamic_cast时的exc_bad_access

时间:2017-01-14 10:17:06

标签: c++ cocos2d-x dynamic-cast

CCArray* CommonTool::getChidrenRecursive(CCNode *parent)
{
    CCArray* children = parent->getChildren();
    CCArray* result = CCArray::create();
    const auto count = children->count();
    CCLOG("count = %d ", count);
    CCLOG("children = %p", children);
    for(auto index = 0 ; index < count ; index++) {
        CCLOG("index = %d", index);
        const auto c = children->objectAtIndex(index);
        CCLOG("c = %p", c);
        const auto& t = typeid(c);
        CCLOG("type = %s", t.name());
        const auto ccc = dynamic_cast<CCObject*>(c);
        CCLOG("ccc = %p", ccc);
        const auto childNode = dynamic_cast<CCNode*>(c); // <- EXC_BAD_ACCESS occurs

有没有人有这方面的经验?

如果无法强制转换,则返回NULL。 如果发生异常,则抛出std :: bad_cast。 我想知道EXC_BAD_ACCESS出现的条件,而不是上述两种情况。

我猜这个指针可能不对,但由于dynamic_cast不起作用,我无法调查指针的类型。 我想告诉我是否有一种很好的方法来研究指针的类型。

0 个答案:

没有答案