Imaginaos que tenemos una clase llamada Datos, con su archivo .h y su archivo .m (sí, no solo de Swift vive el hombre, ja ja ja)
Es una clase que contiene algunos datos que queremos usar en nuestra App.
Queremos tener las propiedades de esta clase Datos inicializadas con valores.
La pregunta es: ¿cómo inicializar las variables o propiedades de una clase?
El método -(id)init
Pues la respuesta es sencilla, para incializar las variables de una clase usaremos el método -(id)init
De lo que se trata es de que cuándo yo llamé ese objeto, en este caso mi clase Datos, las variables o propiedades que tenga esta clase, estén inicializadas con valores.
Mi clase Datos tiene dos variables, una de tipo string, y otra de tipo double, si yo llamo a mi clase Datos, quiero que estas variables estén inicializadas con unos valores por defecto, independientemente de que luego durante la ejecución del programa, estos valores puedan cambiar.
Lo haría sobreescribiendo el método init de mi objeto de la siguiente manera:
- (id) init { //Primero invocamos el metodo init de la superclase, de forma que cualquier inicialización que requiera de la clase NSObject se completa antes de que se lleven a cabo las inicializaciones especificas de la clase Datos self = [super init]; //Se comprueba que el objeto self se haya inicializado if (self != nil){ //Establecemos el valor de las variables o propiedades _variableString = @"Hola"; _variableDouble = 0.1f; } //Se devuelve el valor de self, dependerá de la comprobación de si self se inicializó o no, si se inicializó devuelve el objeto Datos inicializado, de lo contrario devuelve nil return self; }
Cómo veis, primero llamamos a la super-clase, para después comprobar si el objeto self se ha incivilizado, el objeto self será nuestra clase.
Si el objeto se inicializa, entonces se inicializan nuestras variables o propiedades con el valor que nosotros queramos.
Por último se devuelve el propio objeto, si por lo que fuere, el objeto no fue inicializado, entonces se devuelve nil.
Es conveniente inicializar nuestras variables o propiedades siempre, de forma que cuándo llamemos a nuestros objetos, estos no tenga valores a nil, ya sabéis que Objective-C admite variables con valores a nil, pero no siempre es conveniente hacer esto.
2 Comments