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?
Réponses
Trop de publicités?-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.