Conveniencia Init En Swift

Khuong Pham
Khuong Pham

Seguir

el 23 de Mayo de 2017 · 2 min read

las Clases, estructuras y enumeraciones necesita al menos un vacío init método para inicializar para la preparación de sus casos.

Para Estructuras y Enumeraciones, su constructor ya ha declarado implícitamente.

Sobre las Clases, si escribimos una clase, debemos declarar de forma explícita.

Ok, es bueno, ¿verdad?

Pero una clase tiene herencia, lo que significa que puede heredar sus métodos de superclase, propiedades y otras características. Pasemos al siguiente código a continuación

Tenemos una subclase clase B-a de clase A. Agregamos una variable, y agregamos un inicializador para establecer un valor en b para que se compile. Es de esperar que B haya heredado el inicializador de A, init(a: Int). Pero no lo hace. ¿Cómo sabe init(a: Int)A asignar un valor a la variable b que B agregó? Así que no podemos inicializar una instancia Bcon un inicializador que no puede inicializar todos nuestros valores, como así:

Así que si solo quiero inicializar el valor a o b, con un valor predeterminado del resto. ¿Cómo podría?

Conveniencia init nos ayudará, agregue este código

Así que tenemos una muy conveniente manera de inicializar un Binstancia.

Eso es todo! Espero que disfrutes de este artículo, gracias por leer y te veré la próxima vez.