title: How to completely unload SpriteKit Scene
body: <p>When I hit the retry button in my game, I want it to reload the MainScene.  I am doing this with:</p>
  
  <pre><code>-(void)retry
  {
      SKTransition *transition = [SKTransition fadeWithDuration:.4];
      MainScene *gameOver = [[MainScene alloc] initWithSize:self.size];
      [gameOver didMoveToView:self.view];
      [self.scene.view presentScene:gameOver transition:transition];
  }
  </code></pre>
  
  <p>However, this is causing the memory/CPU usage to increase (by a lot) each time I hit retry.  After about 10-20 retries, there is a noticeable lag.</p>
  
  <p>I made all my SKEmitterNode and SKSpriteNode static and that fixed the memory problem, so I suspect that my sprites, emitters, etc are not being released from the memory and are being re-loaded every time I hit retry, doubling it.</p>
  
  <p>I am loading the sprites/emitters like this:</p>
  
  <pre><code>@implementation MainScene {
      SKEmitterNode *_bubbleEmitter;
      SKSpriteNode *_sunglasses;
      ...
  }
  
  - (id)initWithSize:(CGSize)size
  {
    if (self = [super initWithSize:size]) 
    {
       _sunglasses = [SKSpriteNode spriteNodeWithImageNamed:@"sunglasses"];
       [_sunglasses setPosition:CGPointMake(self.size.width/2,  self.size.height + 10)];
       [self addChild:_sunglasses];
  
       ...
    }
    return self;
  }
  </code></pre>
  
  <p>Am I loading the sprites or the retry wrong?</p>