72 votes

Objective-C: init vs initialize

En Objective-C, quelle est la différence entre la méthode init (c’est-à-dire l’initialiseur désigné pour une classe) et la méthode initialize ? Quel code d'initialisation faut-il mettre dans chacun?

125voto

Caleb Points 72897

-init est une méthode d'instance, utilisé pour initialiser un objet particulier. +initialize est une méthode de classe, avant d'exécuter des instances de la classe sont créés et avant que d'autres méthodes de la classe sont exécutés. +initialize n'est pas quelque chose que vous utilisez la plupart du temps, mais c'est très pratique pour mettre en place toutes les variables statiques que l'ensemble de la classe peut utiliser, ou pour s'assurer que certaines conditions sont remplies avant tout des instances sont créées.

Le code qui appartient à un -init méthode est décrite à fond dans la mise en Œuvre d'un Initialiseur de la section de L'Objective-C, Langage de Programmation. Il y a également discuté de l'initialisation des classes (c - +initialize) et pourquoi vous pourriez avoir besoin de le faire dans le même document, dans la Classe des Objets de la section. Le code qui va en +initialize sera généralement très lié à l'une fonctionnalité spéciale de la classe qui vous oblige à initialiser dans la première place. Une chose importante à garder à l'esprit en +initialize (et dans toute méthode de classe) est qu' self dans une méthode de classe fait référence à la classe elle-même, et non une instance de la classe.

18voto

Eki Points 91

Pour faire un parallèle pour les développeurs Java, init est comme un constructeur, alors que l’initialisation est comme un bloc statique sur une classe.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X