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不起作用,我无法调查指针的类型。 我想告诉我是否有一种很好的方法来研究指针的类型。