2010-05-08 4 views
0

J'écris un petit jeu de musique pour l'iphone. J'ai presque fini, c'est le seul problème qui m'empêche de le déployer. toute aide pour résoudre ceci est très appréciée.Appeler addsubview provoque à nouveau ralentissement

c'est ce que je fais: à mon appDelegate J'ajoute mon menu-view-screen à la fenêtre. le menu-view-screen agit comme un conteneur et contrôle quelle vue est présentée à l'utilisateur.

signifie, sur le menu-vue-écran, j'ai 4 boutons (nouveau jeu, options, faq, highscore). lorsque l'utilisateur clique sur un bouton quelque chose comme cela se produit:

if (self.gameViewController == nil) 
{ 
    GameViewController *viewController = [[GameViewController alloc] initWithNibName:@"GameViewController" bundle:nil]; 
    self.gameViewController = viewController; 
    [viewController release]; 
} 
[self.view addSubview:self.gameViewController.view]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleSwitchViewNotificationFromGameView:) name:@"SwitchView" object:gameViewController]; 

lorsque l'utilisateur retourne au menu, ce morceau de code est exécuté:

[[NSNotificationCenter defaultCenter] removeObserver:self]; 
[self.gameViewController viewWillDisappear:YES]; 
[self.gameViewController.view removeFromSuperview]; 

ceci fonctionne très bien pour tous les écrans, mais pas pour l'écran de jeu (bien c'est le seul avec des tas d'interaction utilisateur) signifie que la réactivité de l'iphone (lors de la lecture des sons) devient très lent. Les performances sont bonnes lorsque j'affiche la visionneuse pour la première fois. il commence à devenir plus lent dès que je l'ajoute à nouveau dans le menu-views-container-subviews (addsubview) (essentiellement ouvrir un nouveau jeu) des idées quelles sont les causes (ou de se déplacer) cela?

merci tas

Meilleures salutations Tom

Répondre

0

Ok, du haut de ma tête, cela ne ressemble pas à un problème de contrôleur. Cela ressemble à un problème avec quelque chose d'autre qui est en cours d'exécution ou de mâcher de la mémoire. Je suggère d'utiliser les outils de profilage pour voir si vous pouvez déterminer où le processeur disparaît aussi. Vous pourriez avoir une fuite de mémoire d'objets qui font aussi beaucoup de choses par exemple.

Questions connexes