objective-c - studio - self organizing maps matlab
Objective-C: init vs initialize (2)
Para dibujar un paralelo para los desarrolladores de Java, init es como un constructor, mientras que la inicialización es como un bloque estático en una clase.
En Objective-C, ¿cuál es la diferencia entre el método init
(es decir, el inicializador designado para una clase) y el método de initialize
? ¿Qué código de inicialización se debe poner en cada uno?
-init
es un método de instancia, utilizado para inicializar un objeto en particular. +initialize
es un método de clase, se ejecuta antes de que se creen las instancias de la clase y antes de que se ejecuten otros métodos de clase. +initialize
no es algo que use la mayor parte del tiempo, pero es útil para configurar cualquier variable estática que la clase como un todo pueda usar, o para asegurar que se cumplan ciertas condiciones antes de que se creen instancias.
El código que pertenece a un método de entrada se describe detalladamente en la sección Implementación de un inicializador de El lenguaje de programación Objective-C . También hay alguna discusión sobre la inicialización de clases (es decir, +initialize
) y por qué es posible que deba hacer eso en el mismo documento, en la sección Objetos de la clase . El código que entra en +initialize
generalmente estará fuertemente ligado a la funcionalidad especial de la clase que requiere inicializarlo en primer lugar. Una cosa importante a tener en cuenta en +initialize
(y en cualquier método de clase) es que self
en un método de clase se refiere a la clase en sí misma, no a una instancia de la clase.