Como5: Manuales Tutoriales y Guias de Internet
Menu
  • inicio
  • Tutoriales
  • Chrome
  • Office
  • Windows
  • Iphone
  • Cupones
Home
iphone
Programación rápida 101: el poder de las extensiones

Programación rápida 101: el poder de las extensiones

Las extensiones son una de las mejores características de Swift. Las extensiones le permiten agregar comportamiento a las clases existentes, incluidas las clases en Cocoa Touch Framework. Apple no puede agregar todas las funciones que desea a sus clases de marco, ¡pero le han proporcionado una herramienta que le permite hacerlo usted mismo! En este artículo, aprenderá los usos prácticos de las extensiones Swift que puede utilizar de inmediato en sus proyectos de iOS.

Índice de contenido

  • 1 Extensiones Swift
  • 2 Crear extensiones personalizadas
  • 3 Agregar propiedades calculadas
  • 4 Agregar subíndices
  • 5 Reglas de extensión
  • 6 Conclusión

Extensiones Swift

Las extensiones de Swift le permiten extender clases, estructuras y enumeraciones sin crear una subclase. Es mejor crear una extensión para agregar funcionalidad a una clase Cocoa Touch Framework que crear una subclase, porque le permite usar la clase Cocoa Touch estándar en toda su aplicación. Por ejemplo, si agrega una extensión al NSURL clase, todavía puedes usar NSURL a lo largo de su aplicación. No es necesario que recuerde utilizar una subclase personalizada en algunos lugares y NSURL en otros.

Puede agregar estos elementos a un tipo usando extensiones:

  • Métodos de instancia y tipo
  • Instancia calculada y propiedades de tipo calculado
  • Inicializadores
  • Subíndices
  • Conformidad con un protocolo

Aquí está la sintaxis básica para declarar una extensión en Swift:

Crear extensiones personalizadas

Para ver cómo funcionan las extensiones Swift, agreguemos un nuevo método a la clase String de Swift.

De forma predeterminada, String no tiene un método que le diga el número de veces que una cadena ocurre en otra cadena. Por ejemplo, es posible que desee saber cuántas comas hay en una cadena. Dado que String no tiene este método, puede agregarlo usando una extensión.

Ya he creado una extensión para ti. Descargar el ExtensionesDemo proyecto de muestra en este enlace para que puedas echar un vistazo.

  1. Después de descargar el ExtensionesDemo proyecto, ábralo en Xcode.
  1. Selecciona el StringExtensions.swift en el Navegador de proyectos para ver la siguiente declaración de extensión:

La palabra clave de extensión va seguida del nombre de la clase que se está ampliando; en este caso, Cuerda. La extensión declara un ocurrenciasOfString método que acepta un Cuerda parámetro llamado una cuerda. Esta es la cadena que está buscando. El valor de retorno es un En t que contiene el número de veces una cuerda se encuentra en la cadena que está probando. Dentro de este método, self se refiere al objeto de cadena que está buscando.

  1. Veamos cómo funciona esta extensión en tiempo de ejecución. En el Navegador de proyectos, expanda el ExtensionsDemoTests.swift archivo. Este archivo contiene el testExtension método:

  1. los StringExtensions.swift La clase no está incluida en el objetivo del proyecto de prueba unitaria. Para verificar esto, escriba las letras entonces después de la declaración constante:

los ocurrenciasOfString El método no aparece en Finalización de código porque la extensión no se ha incluido en el destino de la prueba unitaria. Cambiemos eso.

  1. Seleccione StringExtensions.swift en el Navegador de proyectos. Vaya al Inspector de archivos en el lado derecho de la ventana de Xcode, y debajo Membresía objetivo, Selecciona el ExtensionesDemoTests casilla de verificación (Figura 1).
Figura 1 – Seleccione el ExtensionDemoTests objetivo.
  1. Selecciona el ExtensionDemoTests.swift archivo en el Navegador de proyectos. Inserte el código entonces y el ocurrenciasOfString El método aparece en Completado de código (Figura 2).
El método en Completar código
Figura 2 – ¡La extensión String aparece en Code Completion!
  1. Agregue el siguiente código al testExtension método:

Este código verifica el número de veces que aparece “el” en la cadena. ¡Debería aparecer dos veces!

  1. Establezca un punto de interrupción haciendo clic en el margen a la izquierda de la segunda línea de código (figura 3).
Establecer un punto de interrupción
Figura 3: establezca un punto de interrupción en la segunda línea de código.
  1. Para ejecutar este método, vaya al Navegador de pruebas haciendo clic en el quinto botón de la izquierda en la barra de herramientas del Navegador. Luego haga clic en la flecha a la derecha del ExtensionDemoTests nodoFigura 4).
Ejecuta la prueba unitaria
Figura 4 – Ejecute la prueba unitaria.
  1. Cuando llegue al punto de interrupción, haga clic en el Dar un paso en la barra de herramientas Depurar y el contar La variable se establece en 2 en la Vista de variables (Figura 5).
Se han encontrado dos ocurrencias
Figura 5 – Se han encontrado dos ocurrencias.
  1. Haga clic en el botón Continuar en la barra de herramientas Depurar y Xcode indica el testExtension ha pasado el método.

Agregar propiedades calculadas

Las extensiones de Swift pueden agregar propiedades de tipo e instancia computadas, pero no pueden agregar propiedades almacenadas u observadores de propiedades a propiedades existentes.

Veamos una extensión que agrega una propiedad de instancia calculada al UIImage Clase Cocoa Touch.

  1. En Xcode, seleccione Archivo> Abrir y navegue hasta la carpeta donde descargó el código de muestra de esta publicación. Profundizar en el ExtensionesDemo proyecto, seleccione el Extensions.playground archivo y haga clic en Abierto.
  1. El patio de recreo contiene la siguiente extensión del UIImage clase:

Esta extensión contiene una única propiedad llamada halfSizeImage. Toma la imagen existente (si la hubiera) y devuelve una versión de tamaño medio. Hagamos un intento.

  1. Agregue el siguiente código al final del patio de juegos:

Este código crea un objeto UIImage a partir del archivo Book4iOS8.png, que he agregado a los recursos de este patio de recreo. Cuando ingresa este código, el tamaño de la imagen se muestra en la barra lateral del área de juegos (Figura 6).

Figura 6 – La imagen es 250 x 327
  1. Mueva el puntero del mouse a la derecha del tamaño de la imagen y haga clic en el icono Vista rápida (el ojo) para ver la imagen (Figura 7).
Figura 7: coloque el cursor sobre el icono Vista rápida para ver la imagen.
  1. Ahora agregue el siguiente código al guión gráfico que hace referencia al halfSizeImage propiedad de extensión:

  1. Cuando ingresa esta nueva línea de código, la barra lateral muestra el tamaño de la nueva imagen devuelta por la propiedad calculada, la mitad del tamaño original (Figura 8).
La imagen de tamaño medio
Figura 8: la imagen de tamaño medio es 125×164
  1. Mueva el puntero del mouse a la derecha de la nueva línea de código y haga clic en el botón Vista rápida para ver la imagen de tamaño medio (Figura 9).
Vista rápida muestra la imagen de tamaño medio
Figura 9: Vista rápida muestra la imagen de tamaño medio

¡La propiedad calculada de la extensión está funcionando!

Agregar subíndices

Extensions.playground contiene otra extensión que demuestra cómo agregar un subíndice a una clase existente:

Este subíndice acepta un valor de índice entero y devuelve el carácter en ese índice.

  1. Agregue el siguiente código al final del área de juegos para probar esta extensión:

  1. Este código crea una variable String que contiene 26 caracteres, luego solicita el carácter en la posición 0. La barra lateral de resultados muestra los valores en Figura 10.
Figura 10 – ¡La extensión del subíndice en acción!

Esto es exactamente correcto. El primer carácter de la cadena es la letra segundo.

Intente experimentar con otros valores, incluidos números negativos y números mayores de 25. El subíndice devuelve nulo en ambos casos.

Reglas de extensión

Aquí hay algunas cosas más a tener en cuenta sobre las extensiones:

  • Puede agregar más de un miembro a una clase en una sola extensión.
  • Es una buena práctica agregar métodos relacionados a una sola extensión.
  • No hay límite para la cantidad de extensiones que puede agregar a una clase.
  • Los miembros agregados a una clase por una extensión son heredados por subclases.

Conclusión

Con suerte, puede ver el poder de las extensiones y cómo se pueden aplicar de manera práctica para facilitar la codificación del día a día. Las extensiones le permiten resolver un problema una vez y reutilizar la solución muchas veces en varios proyectos de iOS. Recuerde, es una buena práctica crear extensiones en lugar de subclasificar las clases de Cocoa Touch Framework siempre que sea posible.

Publicaciones relacionadas:

Signal: Cómo obtener la aplicación de chat cifrada para su iPad iBooks para Mavericks: 5 cosas que necesita saber Cómo hacer una búsqueda de fotos usando subtítulos de fotos en su iPhone (nuevo para iOS 14) Cómo saltar a aplicaciones con 3D Touch en iPhone iRig Mic Field Review – ¡Mejore la calidad de grabación de su iPhone! Mejore su juego de golf con Tiger Woods: My Swing y Who’s Your Caddy Apps Las 5 mejores aplicaciones de búsqueda de empleo Cómo copiar y pegar un número en el teclado del iPhone Revisión de la aplicación HyperPhysics Cómo agregar un accesorio de hogar inteligente a Homekit Cómo eliminar pasos no ganados de su aplicación de actividad Apple Watch Las 5 mejores aplicaciones gratuitas para seguir los playoffs de la NBA
Prev Article
Next Article

Leave a Reply
Cancelar la respuesta

  • ÚLTIMAS PUBLICACIONES:

Comparativa: iPhone 15 vs. Samsung Galaxy S24, ¿cuál es el mejor smartphone?

playstation 5

Los Juegos Exclusivos de PlayStation 5 que No Te Puedes Perder

laptop lenovo

Laptop Lenovo: Potencia, Diseño y Durabilidad para Trabajar y Jugar

ps5

PS5: ¿Es realmente el futuro del gaming o solo un hype?

Samsung Galaxy S25 Ultra

Descubre el Samsung Galaxy S25 Ultra: Potencia, Diseño y Innovación sin Límites

Parlante Bluetooth

¿Vale la Pena Invertir en un Parlante Bluetooth Premium? Descúbrelo Aquí

Cocinas del Futuro

Cocinas del Futuro: Electrodomésticos Inteligentes que Facilitan la Vida

Ventilador

Ventilador: El Aliado Perfecto para un Clima Ideal

Como5: Manuales Tutoriales y Guias de Internet
Los mejores manuales, tutoriales y guias de Internet, explicados paso a paso con imagenes
Copyright © 2026 Como5: Manuales Tutoriales y Guias de Internet
Políticas | Cookies | Responsabilidad | Nosotros | Contacto | Sitemap
Ad Blocker Detected

Our website is made possible by displaying online advertisements to our visitors. Please consider supporting us by disabling your ad blocker.

Refresh