applicationWillTerminate est en retard, existe-t-il une méthode plus rapide à utiliser lorsque vous quittez?

StackOverflow https://stackoverflow.com/questions/1412871

Question

J'utilise - (void) applicationWillTerminate: (NSNotification *) pour enregistrer les données lorsque mon jeu se termine, puis pour les charger si l'utilisateur appuie sur le bouton de chargement la prochaine fois. La sauvegarde et le chargement fonctionnent bien, mais j’ai remarqué un décalage entre le moment où j’appuie sur le bouton principal et le moment où les données sont sauvegardées. Chaque fois que je sors, relance et charge, le chronomètre du jeu continue de tourner et les états changent avant que l'applicationWillTerminate ne soit appelée; par exemple. Les objets de jeu en mouvement sont chargés à différents endroits, puis ce que j'ai vu pour la dernière fois en appuyant sur le bouton d'accueil. Il est intéressant de noter que si j'appuie rapidement sur le bouton d'accueil, il semble quitter la fermeture de l'application et les commandes de musique apparaissent. Cependant, si j'arrête de cette façon chaque fois que je charge à nouveau les données, la minuterie ne continue pas - les objets de jeu ne bougent pas avec leurs vitesses. Y a-t-il un moyen de contourner cela?

Était-ce utile?

La solution

Avez-vous consulté UIApplicationWillResignActiveNotification ? Quelque chose comme ce qui suit au chargement / init dans votre 'contrôleur principal' ou votre UIApplication :

[[NSNotificationCenter defaultCenter] addObserver:self /* or whatever */ selector:@selector(applicationWillTerminate:) name:UIApplicationWillResignActiveNotification object:NULL];
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top