CCBreader在读取ccbi文件时有下面2段代码
CCDICT_FOREACH(animationManagers, pElement)
{
CCNode* pNode = (CCNode*)pElement->getIntKey();
CCBAnimationManager* manager = (CCBAnimationManager*)animationManagers->objectForKey((intptr_t)pNode);
pNode->setUserObject(manager);//在node中增加了一个CCBAnimationManager引用
if (jsControlled)
{
mNodesWithAnimationManagers->addObject(pNode);
mAnimationManagersForNodes->addObject(manager);
}
}
if(memberVarAssignmentType == kCCBTargetTypeDocumentRoot) {
mActionManager->addDocumentOutletName(memberVarAssignmentName);
mActionManager->addDocumentOutletNode(node);//在CCBAnimationManager中增加了一个node引用
} else {
mOwnerOutletNames.push_back(memberVarAssignmentName);
mOwnerOutletNodes->addObject(node);
}
上面2行关键代码会导致场景结束时2个变量都无法释放。引用计数还是1。请教下这个地方是需要特殊的处理吗?
我现在临时方法是node在cleanup时手动setUserObject(NULL)。