2008-12-15 8 views
11

Wenn mein App im iPhone-Simulator läuft, die delegierte MethodeiPhone Simulator und applicationWillTerminate()

- (void)applicationWillTerminate:(UIApplication *)application 

nur das erste Mal genannt schlug ich den Home-Taste des iPhone-Simulator.

Nachdem die Home-Taste gedrückt und die App erneut gestartet wurde, wird durch Drücken der Home-Taste die Delegate-Methode nicht aufgerufen.

Was geht hier vor? Verkenne ich etwas Grundlegendes?

Antwort

24

Ich vermute, dass es aufgerufen wird, aber Sie werden verwirrt, weil Sie die aktuelle Sitzung in Xcode beendet haben, nachdem Sie die Schaltfläche Start im Simulator gedrückt haben. Sie haben wahrscheinlich eine NSLog in Ihrer applicationWillTerminate: Methode, ja? Sobald Sie die Home-Taste drücken, werden NSLog s nicht mehr in der Laufkonsole von Xcode angezeigt. Wenn Sie /Applications/Console.app öffnen, erwarte ich, dass sie dort auftauchen.

+0

Ja, Sie haben Recht. Aufrufe von NSLog() werden nicht angezeigt, nachdem Sie das erste Mal zum Startbildschirm zurückgekehrt sind. Alle anderen Funktionsaufrufe, die vom Delegierten aufgerufen werden, funktionieren jedoch weiterhin wie üblich. Vielen Dank! – firstresponder

+2

Xcode kümmert sich nicht mehr um die Protokollausgabe vom iPhone Simulator, nachdem Sie das Programm beendet und zu Springboard zurückgekehrt sind. Alles funktioniert immer noch genauso, außer dass die Ausgabe nicht in das Xcode-Laufprotokoll geht. –

+0

Ich kann unterscheiden (die Anwendung Kündigung wegen einiger Telefonanrufe und die Wiederaufnahme des vorherigen Zustand) und (Start der Anwendung)? –

4
- (void)applicationWillTerminate:(UIApplication *)application 

wird aufgerufen, wenn die Anwendung "beendet". Wenn Sie iOS verwenden, wird die App NICHT beendet, wenn die Home-Taste gedrückt wird, es sei denn, Sie haben Multitasking für Ihre App deaktiviert oder der Benutzer hat kein "Multitasking unterstütztes" Gerät.

- (void)applicationDidEnterBackground { 

wird nun verwendet, wenn der Benutzer den Knopf drückt nach Hause. Es sei denn, Sie haben Multitasking für Ihre App deaktiviert oder der Benutzer hat kein "Multitasking unterstütztes" Gerät.