Programación en Swift y SwiftUI para iOS Developers

Que son las Extensiones en Swift y como usarlas

Otra forma de añadir nueva funcionalidad a una clase Swift es usar una extensión. Las extensiones permiten añadir características como métodos, inicializadores, propiedades calculadas y subíndices a una clase existente sin necesidad de crear ni referenciar una subclase. Esto resulta especialmente eficaz al usar extensiones para añadir funcionalidad a las clases integradas del lenguaje de programación Swift y los frameworks del SDK de iOS.

Para extender una clase usamos la siguiente sintaxi:

extension ClassName {

	//code

}

A modo de ejemplo, supongamos que necesitamos agregar algunas propiedades adicionales a la clase Double estándar que devolverá el valor elevado a la potencia 2 y 3. Esta funcionalidad se puede agregar utilizando la siguiente declaración de extensión:

extension Double {

	var squared: Double {
		return self*self
	}

	var cubed: Double {
		return self*self*self
	}
}

Después de haber ampliado la clase Double con dos nuevas propiedades calculadas, ahora podemos utilizar las propiedades como lo haríamos con cualquier otra clase Double, como por ejemplo:

let myValue: Double = 3.0
print(myValue.squared)

Al ejecutarse, la sentencia print generará el valor 9.0. Tenga en cuenta que al declarar la constante myValue, pudimos declararla como de tipo Double y acceder a las propiedades de la extensión sin necesidad de usar una subclase. De hecho, dado que estas propiedades se agregaron como una extensión, en lugar de usar una subclase, ahora podemos acceder a ellas directamente en valores Double.

Las extensiones ofrecen una forma rápida y cómoda de ampliar la funcionalidad de una clase sin necesidad de usar subclases. Sin embargo, las subclases aún presentan algunas ventajas sobre las extensiones. Por ejemplo, no es posible sobrescribir la funcionalidad existente de una clase mediante una extensión, y las extensiones no pueden contener propiedades almacenadas.

Si tienes cualquier duda sobre este artículo, contacta conmigo y estaré encantado de ayudarte 🙂. Puedes contactar conmigo en mi perfil de X o en mi perfil de Instagram.

Leave a Reply

Your email address will not be published. Required fields are marked *

Previous Article

Como cambiar el color de la fuente de la barra de navegación en SwiftUI

Next Article

Como integrar MapKit en SwiftUI

Related Posts