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

Programación rápida 101: colecciones avanzadas

Las colecciones avanzadas de Swift pueden ayudarlo a modelar objetos más complejos en sus aplicaciones y crear una API que sea más fácil de entender y usar. En esta publicación, modelo un tablero de ajedrez usando los subíndices de Swift y también cubro tuplas y matrices multidimensionales.

Índice de contenido

  • 1 ¿Qué son las tuplas y por qué debería usarlas?
  • 2 Matrices multidimensionales
  • 3 Crear colecciones personalizadas
  • 4 Sintaxis de subíndice
  • 5 La muestra del tablero de ajedrez
  • 6 Conclusión

¿Qué son las tuplas y por qué debería usarlas?

Las tuplas de Swift (pronunciadas como “herramientas” o “tuplas”) proporcionan una forma de crear un grupo de valores relacionados. A diferencia de las matrices y los diccionarios, una tupla puede contener valores de diferentes tipos. Las tuplas son particularmente útiles para devolver múltiples valores de un método.

Echemos un vistazo a un ejemplo que demuestra cómo se pueden usar las tuplas en sus aplicaciones. Puede descargar el proyecto de muestra desde este enlace.

  1. Abre el TuplasDemo proyecto de muestra en Xcode.
  1. Ejecutemos el proyecto para obtener una descripción general de lo que hace la aplicación. Haga clic en Xcode Correr , y cuando la aplicación aparezca en el Simulador, debería aparecer la escena en Figura 1.
Figura 1 – El TuplasDemo escena principal

Esta es una aplicación muy simple que le permite agregar nuevas ubicaciones a la base de datos de la aplicación utilizando Core Data.

  1. Sin ingresar un nombre de ubicación, haga clic en el Agregar Direccion botón. Debería ver una alerta que dice que debe ingresar un nombre de ubicación (Figura 2).
La alerta de campos obligatorios de TuplesDemo
Figura 2 – El TuplasDemo alerta de campos obligatorios
  1. Hacer clic OK para cerrar la alerta. Ahora ingrese un Nombre del lugar (por ejemplo, Los Ángeles, París, Pekín) y haga clic en Agregar Direccion otra vez. Debería ver la alerta mostrada en figura 3 indicando que la ubicación se guardó correctamente en la base de datos.

¡La ubicación se guardó correctamente!
Figura 3 – ¡La ubicación se guardó correctamente!
  1. Regrese a Xcode y haga clic en el Detener botón. Veamos el código que usa tuplas para que todo esto suceda.
  1. Ampliar la Capa empresarial grupo y seleccione el mmBusinessObject.swift archivo en el Navegador de proyectos. Cerca de la parte superior del archivo, consulte el saveEntity declaración de método:

  1. Observe de cerca el valor de retorno. Esta declaración le dice que el saveEntity El método devuelve una tupla que contiene dos valores devueltos con nombre. El primero se llama Expresar y su tipo es Guardar Estado. El segundo se llama mensaje y su tipo es ¿Cuerda?.

Guardar Estado es una enumeración declarada en la parte superior de la mmBusinessObject.swift archivo de código:

los Guardar Estado enumeratiom contiene tres valores posibles que reflejan tres posibles resultados de guardar la entidad en la base de datos:

  • Error – Ocurrió un error.
  • Reglas rotas – se rompió una regla comercial (generalmente, un campo obligatorio se deja vacío).
  • SaveComplete – La entidad se guardó correctamente.

Nosotros pudo solo devuelve el Guardar Estado valor de este método, pero podemos crear una mejor interfaz para el mmBusinessObject class devolviendo también un mensaje que contiene una explicación más detallada de lo que sucedió. ¡Ahí es donde las tuplas vienen al rescate!

  1. Observe que hay dos variables en la parte superior de la saveEntity método. los guardar Estado variable almacena el resultado de la saveEntity operación, y el saveMessage La variable contiene cualquier mensaje que queramos devolver de este método.

El código debajo de las variables es un poco complejo, pero por ahora solo necesita saber que estas dos variables se configuran según el resultado de la operación de guardado.

  1. Ahora mira el regreso declaración en la parte inferior del método:

Para crear un valor de retorno de tupla con nombre, especifique el nombre, dos puntos y el valor. Separe los valores con una coma y coloque los valores devueltos entre paréntesis.

Tenga en cuenta que puede nombrar los valores en una tupla Swift. Esto los hace mucho más útiles que en otros idiomas donde no puede hacer esto. No es necesario que nombre los valores de tupla, pero nombrarlos hace que su código sea mucho más legible e intuitivo.

  1. Veamos cómo se manejan los valores de retorno de la tupla. Hacer clic ViewController.swift en el Navegador de proyectos. Consulte la tercera línea de código en el agregar Direccion método:

Observe que el tipo de la variable de resultado es el mismo que el tipo devuelto por saveEntity método. ¡Es una tupla! Dado que cada valor de tupla tiene un nombre, el propósito de cada valor es muy claro.

Incluí el tipo de la variable de resultado para que puedas entender más claramente el código. Sin embargo, puede eliminar la declaración de tipo y Swift lo resolverá mediante la inferencia de tipo.

El resto del código usa una declaración de cambio para realizar acciones y mostrar mensajes basados ​​en los valores de la tupla.

Aquí hay algunas reglas básicas para las tuplas:

  • Los valores contenidos en una tupla pueden ser de cualquier tipo.
  • Cualquier número de valores puede estar en una tupla, aunque más de dos o tres se vuelven engorrosos.
  • Puede descomponer los valores contenidos en una tupla en variables individuales o constantes:

  • Si solo necesita uno de los valores de la tupla, puede usar un guión bajo para ignorar los otros valores:

  • También puede acceder a los valores de una tupla mediante un índice numérico:

  • Es mejor nombrar los valores en la tupla y luego acceder a los valores usando esos nombres:

Matrices multidimensionales

Puede crear matrices con más de una dimensión. En Swift, crea efectivamente una “matriz de matrices” donde cada miembro de una matriz contiene una referencia a otra matriz. Por ejemplo, en Figura 4, cada elemento de la matriz de la izquierda hace referencia a una segunda matriz de la derecha que contiene tres elementos.

Una matriz bidimensional
Figura 4 – Una matriz bidimensional

Declara una matriz multidimensional anidando pares de corchetes. Por ejemplo, este código declara una matriz de enteros bidimensionales:

Inicializa una matriz multidimensional vacía como esta:

La matriz de cadenas bidimensionales de la Figura 4 se dimensiona e inicializa así:

Puede hacer referencia a elementos en una matriz multidimensional mediante dos conjuntos de corchetes. El primer conjunto de corchetes hace referencia a la matriz externa y el segundo establece la matriz interna. Por ejemplo, dada la matriz en la Figura 4:

En la siguiente sección, verá una aplicación práctica de dónde puede usar matrices multidimensionales en sus aplicaciones de iOS.

Crear colecciones personalizadas

Las clases de colección de Swift satisfacen la mayoría de las necesidades de sus aplicaciones de iOS. Sin embargo, en casos especiales, es posible que desee declarar sus propias clases de colección. Esto requiere el uso de subíndices de Swift.

Veamos cómo podemos usar subíndices para crear un Tablero de ajedrez clase que nos permite acceder a casillas individuales del tablero.

Figura 5 muestra un tablero de ajedrez con notación algebraica ligeramente modificada, una notación común que se usa para registrar una partida de ajedrez.

Un tablero de ajedrez con notación algebraica.
Figura 5 – Un tablero de ajedrez con notación algebraica

Las filas del tablero están numeradas 1 a través de 8y las columnas a a través de h. Cada pieza de ajedrez tiene una designación de dos caracteres. Las piezas negras comienzan con la letra B y blanco con la letra W. La segunda letra especifica el tipo de piezas: R= Torre, norte= Noche, B= Obispo, Q= Reina, K= Rey, PAG= Peón. (Aquí es donde mi notación se desvía: en notación algebraica estándar, la ausencia de una letra indica un peón).

Para hacer referencia a un cuadrado específico en el tablero de ajedrez, usa una notación de 2 caracteres compuesta por columna / fila. Por ejemplo, el cuadrado en la esquina inferior izquierda del tablero es a1. El cuadrado de la esquina superior derecha es h8.

Para modelar esta notación de columna / fila, podemos crear un subíndice personalizado para un Tablero de ajedrez class y utilícelo en combinación con una matriz de cadenas bidimensional. Esto nos permite hacer referencia a un cuadrado como este:

Sintaxis de subíndice

Aquí está la sintaxis para declarar un subíndice en Swift:

Esta sintaxis es similar a las propiedades calculadas. Comienzas la declaración con el subíndice palabra clave, seguida de uno o más parámetros de entrada que aceptan los valores utilizados para recuperar un elemento específico de la colección. A continuación, especifica el tipo de retorno, que es el tipo de valor devuelto de la colección.

los obtener El método se ejecuta al recuperar un valor de la colección, y el conjunto El método se ejecuta al almacenar un elemento en la colección. Puede crear una colección de solo lectura omitiendo el conjunto método.

La muestra del tablero de ajedrez

Echemos un vistazo al código de muestra que muestra dos subíndices en acción. Puede descargar el patio de juegos de código de muestra en este enlace.

Abre el Subscripts.playground archivo en Xcode. En la parte superior del patio de recreo, un Tablero de ajedrez se declara la clase. Esta clase tiene una matriz de cadenas bidimensional llamada tablero que modela los cuadrados en un tablero de ajedrez. Contiene una matriz de ocho elementos, que representan las filas de un tablero de ajedrez. Cada elemento de fila contiene otra matriz de ocho elementos que representan las columnas de un tablero de ajedrez:

los tablero La matriz se inicializa con piezas de ajedrez ubicadas en cuadrados como al comienzo de una partida (Figura 5).

los Tablero de ajedrez La clase también tiene dos diccionarios:

los filas El diccionario acepta una letra de fila y devuelve el número de fila correspondiente. los columnas El diccionario acepta una cadena de columna y devuelve el número de columna correspondiente. Nosotros pudo deshacerse del columnas matriz y simplemente realice un cálculo matemático simple para determinar el número de columna. Pero, en aras de la capacidad de descubrimiento, elegí usar una metodología similar tanto para filas como para columnas (eligiendo claridad sobre inteligencia).

A continuación, en el patio de recreo, está la primera declaración de subíndice:

Este subíndice acepta un Cuerda parámetro (el par columna / fila) y devuelve un opcional Cuerda (la pieza de ajedrez). El valor de retorno debe ser opcional porque puede pasar una columna / fila no válida (como z9) en cuyo caso el subíndice regresa nulo.

Si los números de columna y fila son válidos, se utilizan para recuperar la pieza de ajedrez que está en el cuadrado correspondiente en el bidimensional. tablero formación:

Esta pieza de ajedrez luego se devuelve del captador.

Para probar este subíndice, en la parte inferior del patio de juegos, intente ingresar diferentes pares de columnas / filas. Por ejemplo, Figura 6 muestra los resultados de escribir dos pares de columna / fila válidos y uno no válido.

Figura 6 – Prueba del primer subíndice

Mire más abajo en el patio de recreo para ver el segundo subíndice declarado para la clase Tablero de ajedrez:

Este subíndice acepta un fila parámetro de tipo Personaje y un columna parámetro de tipo En t (por ejemplo, “C”, 7) y devuelve la pieza de ajedrez como opcional Cuerda. Los subíndices pueden aceptar cualquier número y tipo de parámetros de entrada y devolver cualquier tipo.

En la parte inferior del patio de recreo, pruebe diferentes combinaciones de filas y columnas como en Figura 7.

Figura 7: Prueba del segundo subíndice

Este subíndice necesita menos código de verificación de errores porque los parámetros de entrada están definidos de manera más estricta. Sin embargo, es menos natural de usar porque tiene que pasar cada carácter por separado en lugar de usar la combinación de fila / columna más familiar del primer subíndice.

Agregué este segundo subíndice para mostrarle cómo aceptar múltiples parámetros. En última instancia, elegiría el primer subíndice en una aplicación del mundo real porque, aunque inicialmente tuve que escribir un poco más de código, produjo una clase con una interfaz más intuitiva.

Conclusión

Las tuplas, las matrices multidimensionales y los subíndices proporcionan funciones de recopilación más avanzadas que puede implementar para casos especiales en sus aplicaciones de iOS. ¡Son otro conjunto de herramientas que puede aprender y desarrollar en su camino para ser un mejor desarrollador de aplicaciones!

Publicaciones relacionadas:

Revisión: los mejores cargadores portátiles de Griffin para iPhone Cómo sincronizar Chrome y usar su iPhone para ver las pestañas de Chrome abiertas en su Mac CES 2016: Mejores auriculares Bluetooth y con cable Cómo hacer una copia de seguridad de su iPhone en una Mac sin iTunes Cómo eliminar todo en el iPhone antes de vender su dispositivo Los juegos móviles generaron más ingresos en 2016 que las PC y los juegos de consola Default ThumbnailRevisión: nuevo reproductor multimedia gratuito RockPlayer2 con capacidades superrápidas para compartir archivos locales Transmita en vivo las finales de la NHL Playoffs y la Copa Stanley en su dispositivo Apple sin cable 4 hermosas correas de cuero para Apple Watch Cómo duplicar un iPhone en un televisor Cómo desactivar las sugerencias de búsqueda en la aplicación Safari para iPhone y iPad Cómo cambiar la correa de tu Apple Watch
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