title: Cocos2d-X why call retain() before addChild()
body: <p>Can anybody help me to find out why we need to call the retain() before the addChild(), I just thought if we call the addChild, the pool will manage the CCNode we added, so why we need to retain it and release it by ourself?</p>
  
  <pre><code>bool GameOverScene::init()
  {
  
      if( CCScene::init() )
      {
          this-&gt;_layer = GameOverLayer::create();
          this-&gt;_layer-&gt;retain();
          this-&gt;addChild(_layer);
  
          return true;
      }
      else
      {
          return false;
      }
  }
  
  GameOverScene::~GameOverScene()
  {
  
      if (_layer)
      {
          _layer-&gt;release();
          _layer = NULL;
      }
  } 
  </code></pre>