iOS 7 Sprite Kit de libérer de la mémoire

Je suis la construction d'un jeu pour iOS qui vise pour le nouvel iOS 7 et Sprite Kit, à l'aide de l'émetteur de nœuds et de la physique pour améliorer le gameplay. Alors que le développement de l'application, j'ai couru dans un grave problème: vous pouvez créer vos scènes, des nœuds, des effets, mais lorsque vous avez terminé et nous devons retourner à l'écran principal, comment vous libérer toute la mémoire allouée par ces ressources?

Idéalement ARC doit se libérer de tout, et la demande devrait revenir à la consommation de mémoire de niveau qu'il avait avant la création de la scène, mais ce n'est pas ce qui se passe.

J'ai ajouté le code suivant, que la méthode dealloc de la vue, qui tire la scène et est responsable de la suppression de tout une fois fermé (supprimé):

- (void) dealloc
{
    if (scene != nil)
    {
        [scene setPaused:YES];

        [scene removeAllActions];
        [scene removeAllChildren];

        scene = nil;

        [((SKView *)sceneView) presentScene:nil];

        sceneView = nil;
    }
}
  • sceneView est une UIView, qui est le conteneur de la scène
  • scène est une extension de la SKScene classe, création de tous les SKSpriteNode objets

Je serais très reconnaissant de toute aide à ce sujet.

  • Même problème ici, ma scène continue de fonctionner même lorsque j'appelle dismissViewControllerAnimated, avez-vous réussi à le résoudre?
  • Oui, je l'ai fait, il n'y avait rien que je puisse faire de la scène ou de Sprite Kit pour la matière, j'ai tout simplement besoin de retirer de la scène et de la vue contenant complètement de la vue parent, couper tous ses liens vers les autres parties du système, pour que la mémoire pour être libéré ainsi.
InformationsquelleAutor Lehel Medves | 2013-10-08