2010-12-14 10 views
1

Ich habe die WWDC 2010 über die Einführung von Multitasking gesehen und ich habe angefangen, unsere App zu aktivieren, allerdings habe ich eine Frage bezüglich der Freigabe von nicht sichtbaren Ansichten.iOS Multitasking: Vom System vorgenommene Reduzierungen beim Eingeben des Hintergrunds

Laut dem Vortrag (Sitzung 105 - Multitasking auf iPhone OS anwenden, Teil 1 - 00:34:50) wird angegeben, dass das System "nicht sichtbare UIViewController-Ansichten" freigibt, wenn es den Hintergrund eingibt. Während meiner Tests (im Simulator) sehe ich das jedoch nicht.

Die Methoden -viewDidUnload werden nicht aufgerufen, und nach Aufruf des Vordergrunds und Anzeige eines zuvor versteckten VC wird die Methode -loadView ebenfalls nicht aufgerufen. Daher werden die versteckten VC-Ansichten in meinem UITabBarController überhaupt nicht veröffentlicht, im Gegensatz zu dem, was sie in der Diskussion gesagt haben. Irgendwelche Ideen?

Es gibt keine Erwähnung davon in der "Moving to the Background" Dokumentation, nur in der Diskussion.

Jede Klärung würde sehr geschätzt werden.

Antwort

1

Haben Sie versucht, eine Speicherwarnung zu simulieren, während sich Ihre App im Hintergrund befindet? Ich glaube, dass die Ansichten erst freigegeben werden, wenn andere Apps Speicher anfordern. Wenn der Speicherverbrauch gleich bleibt, werden Ihre Ansichten nicht freigegeben, sodass Sie schneller zurückschalten können.

+0

Interessant! Das Auslösen von Speicherwarnungen im Hintergrund bewirkt, dass '-viewDidUnload' aufgerufen wird, sobald die App wieder in den Vordergrund gelangt. Meine einzige Frage ist, ob das System diese Warnungen auslöst (während einer Situation mit wenig Speicher), bevor es anfängt, nach beendenden Apps zu suchen? Diese nicht benötigten Ansichten belegen den Arbeitsspeicher und zählen in Richtung der "schmutzigen Größe", die iOS betrachten wird. –

+0

Ja, die Warnungen treten auf, bevor Apps beendet werden. Ich glaube, es gibt mindestens zwei verschiedene Ebenen, auf die Sie hingewiesen werden. Ich denke drei Gesamtniveaus. Obwohl ich den Doc nicht finden kann, der es im Moment erklärt. – Mike

Verwandte Themen