本文整理汇总了C++中CCNode::retainCount方法的典型用法代码示例。如果您正苦于以下问题:C++ CCNode::retainCount方法的具体用法?C++ CCNode::retainCount怎么用?C++ CCNode::retainCount使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CCNode
的用法示例。
在下文中一共展示了CCNode::retainCount方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: TestClazzReleased
TEST( Notifier, TestOfNotificationUseAfterRelease )
{
Notifier notifier;
TestClazzReleased* pReleasedNode = new TestClazzReleased( notifier );
pReleasedNode->init();
CCNode* pHolder = new CCNode();
pHolder->init();
notifier.addNotification( getNotificationTestUseAfterRelease(), {pHolder, &CCNode::removeAllChildren } );
EXPECT_EQ( 1u, pReleasedNode->retainCount() );
EXPECT_EQ( 1u, pHolder->retainCount() );
pHolder->addChild( pReleasedNode );
EXPECT_EQ( 2u, pReleasedNode->retainCount() );
EXPECT_EQ( 1u, pHolder->retainCount() );
pReleasedNode->release();
EXPECT_EQ( 1u, pReleasedNode->retainCount() );
EXPECT_EQ( 1u, pHolder->retainCount() );
//OLD: Now when we notify we have problem. We have use after release.
//NEW: Now everything should work because we mark second notification as toRemove so we simply skip it :)
notifier.notify( getNotificationTestUseAfterRelease() );
pHolder->release();
}
示例2: CCLog
void Bug422Layer::check(CCNode* t)
{
CCArray *array = t->getChildren();
CCObject* pChild = NULL;
CCARRAY_FOREACH(array, pChild)
{
CC_BREAK_IF(! pChild);
CCNode* pNode = (CCNode*) pChild;
CCLog("%p, rc: %d", pNode, pNode->retainCount());
check(pNode);
}