Aprende Swift 3

Any es el nuevo id

¡Prueba gratis durante 10 días

nuestros 1240 cursos !

Prueba gratis Mostrar modalidades de suscripción
Ahora ya podemos utilizar any y esperar que todo sea lo que esperamos. Al igual que lo hacíamos en Objective-C, any viene a sustituir id en algunos de los métodos y se abrió un conjunto de tipos para utilizarlos como Any Hashable o AnyObject.

Transcripción

Ahora vamos a hablar acerca de uno de los cambios más importantes que yo he visto a la hora de la estructura de tipos o el sistema de tipos que tiene Swift. Básicamente convirtieron y crearon un nuevo tipo muy general llamado "Any". Vamos a crear este "Playground" con el nombre "Any". Y lo voy a guardar aquí en el escritorio y voy a borrar esta línea. El ejemplo es muy sencillo. Tenemos que revisar los tipos de nuestra variable. Por ejemplo, yo aquí tengo una cadena, esta cadena es variable y le estoy diciendo que es de tipo "Any" la estoy asignando explícitamente a una cadena que en este caso, lo puedo hacer para fines de este ejemplo pero el tipo de este es "Any", no es "string". Ahora, este que es "s" le digo "let s = mystring as? String" ¿Por qué es opcional?, simplemente por este pequeño operador que es "as?". Lo que va a intentar hacer esto es: intentar hacer el casting de "myString" a "String", y si no sale entonces me va a regresar un "nil", por eso es que es un casteo opcional. Ahora, voy a hacer lo mismo con "nss" pero apuntando a "NSString". Lo importante aquí es lo siguiente, ¿cuál es el tipo de "s"? el tipo de "s" es un opcional de "String" pero el tipo de "nss" es de tipo "Optional<NSString". ¿Qué quiere decir? Quiere decir que esta variable tiene la capacidad de comportarse como "String" o "NSString" dependiendo del tipo al cual se esté haciendo el "downcasting". El "downcasting" es cuando estás tratando de transformar de una variable o de un tipo muy genérico a uno muy específico es "downcasting" porque puedes perder datos en esa transformación pero bueno, en este caso no estamos perdiendo datos simplemente estamos intentando llamar la variable de una manera diferente. Ahora, ¿cuál es el principal tema con esto? Que antes en Swift por ejemplo a la hora de estar parseando un JSON tú no sabes qué es lo que viene en el JSON sino simplemente tratas de inspeccionarlo tratas de averiguar si el valor que está detrás de una llave es un diccionario o es un arreglo o es un entero o es una cadena o es de algún tipo en especial. "Any" nos va a permitir mapear el id de "Objective-C" a cualquier tipo de objeto que nosotros tengamos. Va a ser muy complicado que tu estés haciendo toda la transformación de tipos pero nos va a permitir esto en un futuro, tener cierta flexibilidad. Por ejemplo: este es otro ejemplo que tengo aquí en donde el diccionario utiliza "AnyHashable" para poder identificar que cualquier "Key" que implemente el protocolo "AnyHashable" va a poder ser la "llave" del diccionario y "Any" va a poder ser cualquier tipo de valor. En este caso existe "AnyHashable", "Any" con un string y un entero. Si te fijas aquí abajo tengo un ejemplo con "AnyHashable" y "AnyObject". El tema es que esto me arroja un error porque 2 es "Int". y si bien lo sabes, en Swift "Int" es una estructura, no es un objeto, por eso es que no lo acepta pero si yo lo pongo como "Any" entonces el "2" es válido para el diccionario y lo puede envolver. Básicamente, esto resuelve el problema que teníamos con los arreglos o diccionarios en "Objective-C", que eran de "C" y que necesitábamos convertir a objetos de "Foundation" para poderlos meter a un arreglo o un diccionario; eso ya está resuelto. Ahora, otro ejemplo que tengo es exactamente lo mismo, pero algo más práctico. Acerca de un "NSDate", "NSDate" es un objeto y también puede ser de tipo "Any". Esto nos va a permitir poder utilizar cualquier tipo de objeto dentro de nuestros diccionarios o arreglos de una manera muy sencilla simplemente con el uso de la palabra "Any".

Aprende Swift 3

Descubre Swift 3, la versión más actual del lenguaje de Apple; conoce todas sus novedades y aprende el lenguaje de código abierto desde cero para desarrollar tus aplicaciones.

3:14 horas (31 Videos)
Actualmente no hay comentarios.
 

Este curso video2brain está disponible como descarga y para ser visualizado online. ¡Pero no hace falta que decidas entre las dos opciones! Al comprar el curso, disfrutarás de ambas posibilidades.

La descarga te permite ver las lecciones sin estar conectado/a a internet y supone una navegación fácil y ágil entre capítulo y capítulo. Si vas a trabajar en diferentes ordenadores o si no quieres descargarte el curso completo, entra en la web con tus datos de acceso y disfruta directamente de tus vídeos online. Te deseamos que disfrutes de este curso y te resulte de mucha utilidad.

Estamos a tu disposición si tienes cualquier tipo de duda o pregunta.