2010-12-14 17 views
1

J'ai regardé la WWDC 2010 parler de l'adoption du multitâche et j'ai commencé à activer notre application, mais j'ai une question concernant la publication de vues non visibles. Selon l'exposé (Session 105 - Adopter le multitâche sur iPhone OS, Partie 1 - 00:34:50), il est indiqué que le système libère des "vues UIViewController non visibles" en entrant en arrière-plan. Cependant, pendant mes tests (dans le simulateur), je ne vois pas cela arriver.iOS Multitâche: Réductions effectuées par le système en entrant en arrière-plan

Les méthodes -viewDidUnload ne sont pas appelées, et après être entré au premier plan et avoir visualisé un VC précédemment caché, la méthode -loadView n'est pas appelée non plus. Donc les vues VC cachées dans mon UITabBarController ne sont pas du tout publiées, contrairement à ce qu'elles ont dit dans la conversation. Des idées?

Il n'y a aucune mention de cela dans la documentation "Moving to the Background", seulement dans la discussion.

Toute précision serait grandement appréciée.

Répondre

1

Avez-vous essayé de simuler un avertissement de mémoire lorsque votre application est en arrière-plan? Je crois que les vues ne sont publiées que lorsque d'autres applications commencent à demander de la mémoire. Si la consommation de mémoire reste la même, vos vues ne sont pas libérées, ce qui vous permet de revenir plus rapidement.

+0

Intéressant! Le déclenchement des avertissements de mémoire en arrière-plan provoque l'appel de '-viewDidUnload' une fois que l'application a réintégré le premier plan. Donc, ma seule question est, est-ce que le système déclenche ces avertissements (lors d'une situation de faible mémoire) avant de commencer à regarder les applications terminées? Ces vues inutiles prennent de la mémoire et comptent pour la mesure de «taille sale» que iOS va regarder. –

+0

Oui, les avertissements se produisent avant la fin des applications. Je crois qu'il y a au moins deux niveaux différents qui vous sont signalés. Je pense trois niveaux totaux. Bien que je ne puisse pas trouver le document expliquant cela pour le moment. – Mike