Como5: Manuales Tutoriales y Guias de Internet
Menu
  • inicio
  • Tutoriales
  • Chrome
  • Office
  • Windows
  • Iphone
  • Cupones
Home
iphone
Swift 101: Swift cumple con el marco Cocoa Touch

Swift 101: Swift cumple con el marco Cocoa Touch

Aunque Apple ha proporcionado el nuevo lenguaje de programación Swift para crear aplicaciones de iOS, una cosa sigue siendo la misma: seguimos usando las bibliotecas Cocoa Touch Framework para incorporar la funcionalidad de iOS en nuestras aplicaciones. Sin embargo, dado que Cocoa Touch Framework está escrito en Objective-C, ¿cómo se logra esto? En este artículo, le mostraré la mecánica detrás de cómo Swift accede al código Objective-C y cómo cambian las API de Cocoa Touch (interfaces de programación de aplicaciones) cuando accede a ellas desde Swift.

Índice de contenido

  • 1 Interoperabilidad Swift y Objective-C
  • 2 Importación de marcos de Cocoa Touch
  • 3 Creación de objetos a partir de clases Objective-C en Swift
  • 4 Creación de objetos a partir de métodos de fábrica Objective-C en Swift
  • 5 Acceso a las propiedades de Objective-C en Swift
  • 6 Métodos de llamada en Swift
  • 7 Llamar a métodos Objective-C en Swift
  • 8 Conclusión

Interoperabilidad Swift y Objective-C

Apple ha hecho un gran trabajo al facilitarle el acceso al código Objective-C desde Swift y al código Swift desde Objective-C. De hecho, un solo proyecto de Xcode puede contener archivos de código Objective-C y Swift. Esta es una gran noticia para aquellos de nosotros que tenemos muchas aplicaciones y bibliotecas de código escritas en Objective-C.

Esta interoperabilidad le permite migrar lentamente sus aplicaciones a Swift sin volver a escribir la aplicación completa o sin esperar las versiones Swift de bibliotecas de terceros que esté utilizando. También le permite acceder al poder de Cocoa Touch Framework. Esto es importante cuando se trabaja en un nuevo idioma como Swift, que tardará algún tiempo en madurar por completo.

Importación de marcos de Cocoa Touch

En un proyecto Swift, ya no necesita agregar marcos Cocoa Touch a su proyecto por medio del Editor de proyectos. En su lugar, todo lo que tiene que hacer es agregar una declaración de importación en la parte superior de su archivo de código Swift seguida del nombre del marco Cocoa Touch que desea importar. Por ejemplo, el siguiente código importa los marcos Cocoa Touch Foundation y Media Player:

Importar un marco

¡Es tan fácil como eso!

Cuando importa un marco Objective-C a un proyecto (Figura 1) los archivos de encabezado del marco se compilan en módulos Objective-C, que luego se importan como API Swift.

Importación de frameworks Objective-C a Swift

Este proceso de importación realiza cambios en las clases, métodos y funciones para que se vean como clases Swift. Por ejemplo, los tipos de argumentos de método y valores de retorno se cambian a tipos Swift.

Entonces, por ejemplo, un método Cocoa Touch Framework que devuelve NSString en Objective-C devuelve el Swift Cuerda escriba en su lugar. Como otro ejemplo, las enumeraciones cambian del estilo Objective-C que se muestra aquí:

MPMovieSourceTypeUnknown

MPMovieSourceTypeFile

MPMovieSourceTypeStreaming

Al nuevo estilo de enumeración Swift:

MPMovieSourceType.Unknown

MPMovieSourceType.File

MPMovieSourceType.Streaming

Una vez que haya importado un marco Objective-C a su proyecto, puede crear una instancia de clases desde el marco y acceder a su funcionalidad utilizando la sintaxis Swift nativa.

Creación de objetos a partir de clases Objective-C en Swift

Cuando crea objetos a partir de clases de Cocoa Touch Framework en Swift, puede ver que se realizaron cambios en los métodos de inicialización de clases cuando se importaron a Swift.

A modo de comparación, así es como puede crear una instancia UIImageView en Objective-C usando el initWithImage: inicializador:

UIImageView *imageView = [[UIImageView alloc] initWithImage:myImage];

El código equivalente en Swift se ve así:

var myImageView:UIImageView = UIImageView(image: myImage)

Estas son las diferencias importantes a tener en cuenta:

  • Tu no llamas alloc en Swift porque Swift se encarga de esto por ti.
  • los initWith el prefijo se elimina del initWithImage nombre (en eso o initWith se elimina en función del nombre del inicializador).
  • El resto del nombre del inicializador (Imagen) se coloca entre paréntesis, su primer carácter está en minúsculas y se utiliza como nombre del primer argumento.
  • Cualquier argumento de Objective-C adicional también se convierte en nombres de argumento y se incluye entre paréntesis.

Al crear una instancia de una clase en Swift, no necesita especificar el tipo de variable porque Swift puede averiguar o inferir el tipo por usted:

var myImageView = UIImageView(image: myImage)

Creación de objetos a partir de métodos de fábrica Objective-C en Swift

Muchas clases de Objective-C tienen métodos de fábrica que combinan alloc y en eso en un paso y devuelve un nuevo objeto (se llaman métodos de fábrica porque fabrican o crean objetos). Por ejemplo, el siguiente código de Objective-C muestra un método de fábrica que devuelve un UIImage objeto:

UIImage *myImage = [UIImage imageNamed:@"pause.png"];

Cuando los métodos de fábrica se importan a Swift, se convierten en métodos de inicialización como este:

var myImage = UIImage(named: "pause.png")

Note que el imageNamed el parámetro se cambia a llamado en Swift.

Acceso a las propiedades de Objective-C en Swift

Al acceder a las propiedades en Objective-C, puede elegir entre dos sintaxis diferentes. Puede enviar un mensaje utilizando corchetes o utilizar la sintaxis de puntos (.) Para acceder a la propiedad

En Swift, siempre accede a las propiedades utilizando la sintaxis de puntos. Por ejemplo:

controller.fullscreen = false

Cuando se importa una clase Objective-C en Swift, solo sus propiedades que han sido declaradas usando el @propiedad declaración se convierten en propiedades en Swift. Cualquier método declarado como un captador implícito (un método que no acepta parámetros y devuelve un valor) se importa como métodos.

Métodos de llamada en Swift

En Swift, también llama a métodos que utilizan la sintaxis de puntos. Por ejemplo, el siguiente código llama al método pause en un objeto controlador.

controller.pause()

Al llamar a un método que tiene solo un parámetro, es típico que simplemente pase un argumento como este:

var suffixFound = myString.hasPrefix("txt")

Si un método tiene varios parámetros, el resto de los parámetros se nombran y se usa una sintaxis similar a Objective-C al pasar los argumentos. Por ejemplo, en la siguiente llamada al método, el primer argumento no tiene nombre, pero para el segundo argumento, especifica el nombre seguido de dos puntos (animado:) seguido del argumento (cierto):

tableView.deselectRowAtIndexPath(indexPath animated: true)

Llamar a métodos Objective-C en Swift

Cuando se importa una clase Objective-C en Swift, el nombre del método y los argumentos se cambian para adaptarse a la sintaxis del método Swift.

Por ejemplo, la siguiente llamada de mensaje de Objective-C:

[self performSegueWithIdentifier:@"MySegue" sender:self];

Se ve así en Swift:

self.performSegueWithIdentifier("MySegue", sender: self)

Estos son los puntos principales a tener en cuenta:

  • Utiliza la sintaxis de puntos (.) Para llamar al método.
  • La primera parte del selector de Objective-C (performSegueWithIdentifier) se convierte en el nombre del método.
  • El primer argumento (“MySegue”) aparece entre paréntesis y no tiene nombre.
  • Todas las demás partes del selector (por ejemplo, remitente:) se convierten en nombres de argumentos y se incluyen entre paréntesis.

Conclusión

La interoperabilidad que Apple ha proporcionado a Swift hace que sea mucho más fácil para los desarrolladores de Objective-C pasar a este nuevo lenguaje. Aunque la sintaxis ha cambiado un poco, sigue siendo reconocible, ¡y la finalización de código de Xcode ayuda considerablemente a medida que cambia su cerebro a Swift!

Publicaciones relacionadas:

¡Gana la nueva alineación de Apple! Regalamos un iPhone X, Apple Watch Series 3 y mucho más Esta caja de llaves inteligente es perfecta para su alquiler o propiedad de Airbnb Cómo obtener la aplicación de PayPal para iPad: Aplicaciones de iPhone para iPad Cómo Force Touch cambiará la forma en que usamos nuestros iPhones Soporte magnético para automóvil: un atractivo cargador inalámbrico de Moshi Cómo leer un iBook con multimedia interactiva Las mejores aplicaciones de edición de fotos gratuitas y de pago para iPhone 11 y 11 Pro Cómo usar AirPlay 2 desde el Centro de control en su iPhone Cómo ordenar canciones por título en Apple Music con iOS 10 Cómo agregar archivos adjuntos en Mail en el iPhone Cómo evitar que todos sus dispositivos Apple suenen cuando recibe una llamada Revisión: ¿Pueden los auriculares inalámbricos X2 de Jaybird estar a la altura del bombo?
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