Comprendre les différents initialiseurs dans iOS UIViewControllers
En tant que développeur iOS, la création de ViewControllers est un aspect fondamental du processus de développement. Il est essentiel de comprendre les différents initialiseurs disponibles et leurs capacités uniques. Dans cet article, nous allons explorer les différents types d'initialiseurs et leurs différences.
Initialiseurs : un aperçu complet
init()
La init()méthode est l'initialiseur par défaut pour toutes les classes Swift, y compris les contrôleurs de vue. Cet initialiseur ne prend aucun argument et est automatiquement appelé lorsqu'une instance de la classe est créée. Bien que cet initialiseur puisse sembler simple, c'est un outil puissant pour l'injection de constructeur. En utilisant init()et en transmettant des dépendances comme arguments, nous pouvons créer un code plus modulaire et testable.
init?(codeur : NSCoder)
L' init?(coder: NSCoder)initialiseur est utilisé lors de la création d'un contrôleur de vue à partir d'un storyboard ou d'un fichier nib. Lorsqu'une application est lancée, le système restaure l'état de l'application à partir d'une session précédente et le contrôleur de vue est créé à partir de sa forme codée. Cet initialiseur est responsable du décodage des données et de la configuration des propriétés et de l'état du contrôleur de vue.
init(nibName : Chaîne ?, bundle : Bundle ?)
L' init(nibName: String?, bundle: Bundle?)initialiseur est utilisé pour créer un contrôleur de vue à partir d'un fichier nib, qui est un fichier de création d'interface utilisé pour concevoir des interfaces utilisateur. Cet initialiseur prend deux arguments : le nom du fichier nib et le bundle qui le contient. Si le fichier nib est dans le bundle principal, nous pouvons passer nilpour l'argument bundle.
Pourquoi avez-vous besoin d'implémenter les trois initialiseurs UIViewController dans votre application iOS ?
Si vous implémentez un init()initialiseur personnalisé pour votre UIViewControllersous-classe, vous vous demandez peut-être pourquoi vous devez également implémenter les initialiseurs init(coder:)et init(nibName:bundle:).
La raison en est qu'il UIViewControllers'agit d'une sous-classe de NSCoding, ce qui signifie que les instances de votre contrôleur de vue peuvent devoir être archivées et désarchivées au moment de l'exécution. L' init(coder:)initialiseur est appelé lorsqu'un contrôleur de vue est désarchivé d'une représentation codée, et il est responsable du décodage des propriétés du contrôleur de vue et de leur initialisation à leurs valeurs précédentes.
De même, l' init(nibName:bundle:)initialiseur est utilisé lorsqu'un contrôleur de vue est initialisé à partir d'un fichier nib. Bien que vous n'utilisiez peut-être pas de fichier nib pour votre contrôleur de vue personnalisé, d'autres parties de votre application peuvent toujours utiliser des fichiers nib pour créer des instances de votre contrôleur de vue. Il est donc important de fournir une implémentation pour cet initialiseur.
En implémentant les trois initialiseurs ( init(), init(coder:)et init(nibName:bundle:)), vous vous assurez que votre contrôleur de vue est correctement initialisé dans tous les scénarios possibles, qu'il soit instancié par programme, à partir d'un fichier nib ou à partir d'une représentation codée.
Encore une chose : les autres initialiseurs de View Controller
En plus de ces trois initialiseurs, plusieurs autres sont disponibles dans UIKit pour les contrôleurs de vue. Ceux-ci incluent des initialiseurs pour créer des contrôleurs de navigation, des contrôleurs de recherche et des contrôleurs de vue de collection. Les contrôleurs de navigation sont utilisés pour gérer une pile de contrôleurs de vue, les contrôleurs de recherche fournissent une fonctionnalité de recherche et les contrôleurs de vue de collection gèrent une vue de collection. Chacun de ces initialiseurs possède son propre ensemble unique d'arguments et de cas d'utilisation, mais ils servent tous à créer et à configurer des contrôleurs de vue à utiliser dans une application iOS.
Conclusion
Les initialiseurs disponibles lors de la création d'un nouveau ViewController dans iOS peuvent être utilisés pour configurer le ViewController de différentes manières. En comprenant les différences entre les initialiseurs, vous pouvez choisir celui qui correspond le mieux à vos besoins et créer des ViewControllers adaptés à vos besoins spécifiques.
Merci pour la lecture!
J'aimerais entendre vos commentaires et suggestions, alors n'hésitez pas à laisser un commentaire ci-dessous. Votre contribution est précieuse pour m'aider à créer un contenu plus utile pour vous.
Si vous avez trouvé cet article utile, veuillez montrer votre soutien en cliquant sur le bouton clap ci-dessous. Votre appréciation me motivera à créer plus de contenu qui vous aidera, vous et la communauté de développement iOS. Merci!
LinkedIn | GitHub | Instagram
![Qu'est-ce qu'une liste liée, de toute façon? [Partie 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































