Table des matières:
- UIApplication fournit un contrôle à l'échelle de l'application
- UIApplicationMain charge le storyboard
- UIApplication envoie l'application: didFinishLaunchingWithOptions: message à son délégué
Vidéo: Comment BIEN utiliser le préservatif ? 2025
La fonction UIApplicationMain est importante pour le développement d'applications iOS. Il crée l'objet d'application (un singleton - le seul - objet UIApplication) et le délégué d'application (une classe créée pour vous par le template Xcode). Il configure également la boucle d'événement principal, y compris l'exécution de l'application loo p et commence le traitement des événements.
UIApplication fournit un contrôle à l'échelle de l'application
L'objet UIApplication fournit le contrôle et la coordination à l'échelle de l'application pour une application iOS. Il est responsable du traitement du routage initial des événements utilisateur entrants ainsi que de l'envoi des messages d'action des objets de contrôle aux objets cibles appropriés.
L'objet application envoie des messages à son délégué d'application pour vous permettre de répondre de manière unique aux événements tels que le lancement d'application, les avertissements de mémoire insuffisante et les transitions d'état telles que le déplacement en arrière-plan et le retour au premier plan.
La délégation est un mécanisme utilisé pour éviter le sous-classement d'objets UIKit complexes, tels que l'objet UIApplication. Au lieu de sous-classer et de surcharger des méthodes dans un framework ou un autre objet, vous pouvez utiliser cet objet non modifié et opter pour mettre votre code personnalisé dans un objet délégué à la place.
L'objet Application Delegate est responsable de la gestion de plusieurs messages système critiques et doit être présent dans chaque application iOS. L'objet peut être une instance de n'importe quelle classe que vous aimez, à condition qu'elle adopte le protocole UIApplicationDelegate. Dans le modèle, vous trouverez que c'est une sous-classe de UIResponder, qui lui permet de répondre et de gérer des événements. (UIApplication est également dérivé de UIResponder.)
Les méthodes de ce protocole UIApplicationDelegate correspondent aux comportements nécessaires au cours du cycle de vie de l'application et constituent votre façon d'implémenter ce comportement personnalisé. Vous vous retrouverez souvent à écrire du code pour gérer ce qui suit:
-
Initialisation dans l'application de votre délégué d'application: didFinishLaunchingWithOptions: méthode.
-
Transitions d'état, telles que l'entrée et la sortie de l'arrière-plan et de l'avant-plan.
-
Avertissements de faible mémoire.
UIApplication est un objet singleton. Pour obtenir une référence, vous envoyez le message sharedApplication à la classe UIApplication. En envoyant l'objet le message vous donne un pointeur vers l'objet délégué:
AppDelegate * appDelegate = [[UIApplication sharedApplication] delegate];
UIApplicationMain charge le storyboard
Si les informations de l'application.fichier plist spécifie un fichier de storyboard, la fonction UIApplication le charge. Les informations de l'application fichier plist fournit une carte à la structure de haut niveau de l'application.
Pour voir le fichier, sélectionnez-le sous la rubrique Fichiers de support dans le navigateur de projet. Le fichier apparaît consciencieusement dans la zone de l'éditeur.
Un fichier nib est un fichier de ressources contenant les spécifications d'un ou plusieurs objets. Il est utilisé pour créer graphiquement votre interface utilisateur à l'aide d'Interface Builder dans les applications lorsque vous avez choisi de ne pas utiliser de storyboard.
Si vous utilisez un storyboard, le contrôleur de vue initial est instancié pour vous. Le paramètre Initial View Controller est une propriété View Controller. Il est défini pour vous par la plupart des modèles Xcode.
Notez la case à cocher dans les attributs de View Controller dans la zone Utility. Dans le fichier de storyboard iPad, le contrôleur de vue initial est un contrôleur de vue partagée qui a été inclus par le modèle. Le nib-loader instanciera également les deux contrôleurs de navigation ainsi que leurs contrôleurs de vue racine.
Dans le fichier de storyboard iPhone, le contrôleur de vue initial est un contrôleur de navigation qui utilise un contrôleur Table View en tant que contrôleur de vue racine.
UIApplication envoie l'application: didFinishLaunchingWithOptions: message à son délégué
Si la méthode est implémentée dans le délégué de l'application, l'application: didFinishLaunchingWithOptions: message est envoyée au délégué de l'application.
Le temps de lancement est un point particulièrement important dans le cycle de vie d'une application. En plus de l'utilisateur qui lance une application en appuyant sur son icône, une application peut être lancée pour répondre à un type spécifique d'événement. Un dictionnaire Options transmis à l'application: didFinishLaunchingWithOptions: méthode fournit des informations sur la raison du lancement.
L'application: didFinishLaunchingWithOptions: un message est envoyé au délégué lorsque l'application a été lancée et que son storyboard a été chargé. Dans cette étape, comme vous le verrez, vous initialisez et configurez votre application. Au moment où ce message est envoyé, votre application est dans l'état inactif. À un certain point après le retour de cette méthode, votre application deviendra active et recevra le message applicationDidBecomeActive: quand elle entre au premier plan .
Idéalement, vos utilisateurs pourront accéder directement à l'application aussi rapidement que possible sans ces écrans d'accueil obsolètes. En fait, la manière dont vous effectuez cette opération consiste à fournir une ou plusieurs images de lancement que vous placez généralement dans le catalogue d'actifs de votre application.
Une image de lancement est l'arrière-plan du premier écran que l'utilisateur voit. Un moyen facile de les créer est de définir un point d'arrêt dans une méthode viewDidLoad pour la première vue que l'utilisateur verra. Arrêtez l'action juste avant d'ajouter des données à la vue.
Lors de l'exécution, l'image de lancement du périphérique et de l'orientation appropriés s'affichera immédiatement et, si vous y regardez très attentivement, vous pourrez voir que le contenu semble être rapidement placé en arrière-plan.
L'interface de classe (déclarée dans le.h fichier) répertorie les messages auxquels un objet de cette classe peut répondre. Le code réel pour implémenter un message s'appelle une méthode et sera trouvé dans le associé. m fichier. Lorsque vous voulez qu'un objet exécute une méthode, vous lui envoyez un message. Le message est ce que vous voulez faire, alors que la méthode est comment le faire.
Ne chargez pas de grandes structures de données que votre application n'utilisera pas immédiatement. Si votre application nécessite du temps pour charger des données à partir du réseau, commencez par exécuter votre interface, puis lancez la tâche qui prend plus de temps sur un thread d'arrière-plan.
Dans les modèles qui n'utilisent pas de storyboard, l'application: didFinishLaunchingWithOptions: méthode alloue et initialise la fenêtre et le contrôleur Split view, l'ajoute à la fenêtre et rend la fenêtre visible.
Dans une application basée sur un storyboard, tout cela est fait par le storyboard pour vous, et l'application: didFinishLaunchingWithOptions: méthode ne fait rien d'autre que le retour.
