Objective-C tiene una base de código heredada masiva, lo que significa que el lenguaje tendrá una difusión generalizada (al menos) durante un buen tiempo. Eso podría significar que necesita integrar algún código de Objective-C en su proyecto Swift, y este artículo se ha creado para ayudarlo a hacer precisamente eso.
Dificultad: principiante | Fácil | Normal | Desafiante
Puente: el uso de un archivo de encabezado para permitir que el código Objective-C se use en una base de código Swift
Objective-C: un lenguaje orientado a objetos
Esta guía asume que el lector puede crear un proyecto simple y, en lugar de crear una etiqueta en el medio de la vista, coloque un botón allí y agregue la acción a su controlador de vista.
Sin embargo, para ver la imagen en cualquier color que no sea azul, el tipo de botón debería cambiarse a personalizado y el color del texto a algo visible. Se establece una salida, en este caso he llamado a la salida myButton (todo se muestra con el GIF animado a continuación):
Podemos agregar recursos arrastrando y soltando elementos en el proyecto. Debe arrastrar y soltar cualquier imagen JPEG en el proyecto para usarla como fondo del botón
Sí: Hay otras formas de hacer que un botón tenga una acción, pero en este caso usaremos un UITapGestureRecognizer que nos permite detectar el uso del botón:
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(buttonTapped))
myButton.addGestureRecognizer(tapGesture)
@objc func buttonTapped() {
MyObjcClass().printit("Print ME")
}
Podemos agregar una clase Cocoa Touch y especificar que queremos que el idioma sea Objective-C.
El proceso se muestra en el GIF animado como se muestra a continuación, recordando agregar el encabezado de puente:
Necesitamos agregar nuestra clase a objcswift-Bridging-Header.h, y agrega la siguiente línea:
#import “MyObjcClass.h”
¡No es demasiado complicado!
Luego, debemos agregar la siguiente firma a la interfaz (MyObjcClass.h):
- (void) printit:(NSString *)message;
- (void) printit:(NSString *)message {
NSLog(@"%@", message);
}
Cuando ejecutamos la aplicación, cuando hacemos clic en el botón, ¡se imprime en la consola! ¡Woot!
Objective-Ces un gran idioma. Es posible que no elija crear su proyecto en ese idioma, pero es posible que deba hacer un puente a Swift para no reescribir todo ese código (probado). Tiene sentido que establecer un puente entre los dos idiomas sea fácil, y esta guía le ayuda a poder hacerlo.
¿Alguna pregunta? Puedes ponerte en contacto conmigo aquí
Cuando realiza una solicitud a facebook.com, su computadora busca el nombre de dominio para traducir ese nombre de dominio en una dirección IP para que su computadora pueda hacer esa conexión.
Nuestro lenguaje es una herramienta poderosa que puede dar forma a nuestros pensamientos, actitudes y acciones. Incluso términos aparentemente inofensivos pueden perpetuar sesgos y estereotipos dañinos.
Introducción: Bienvenidos, valientes lectores, a un viaje que nos llevará a las profundidades más oscuras de nuestro planeta. En este blog, profundizamos en el enigmático mundo de la Fosa de las Marianas, descubriendo sus secretos ocultos y descubriendo las verdades escalofriantes que se encuentran debajo de su superficie.
En el panorama empresarial en rápida evolución actual, el concepto de trabajo híbrido y remoto ha ganado un impulso sin precedentes. A medida que las empresas continúan adaptándose a las necesidades y expectativas cambiantes de sus empleados, expertos de varios campos se han reunido para analizar los beneficios, los desafíos y el futuro de esta forma transformadora de trabajar.
Puede ser un investigador de OSINT, un jugador de CTF o simplemente alguien que recibe llamadas no deseadas. Alguien que está tratando de verificar el número que viste en un anuncio.
Hace poco estuve en Linkedin, la red social profesional más grande del mundo, y encontré publicaciones de diseñadores independientes a los que sigo que me llamaron la atención. Todos publicaron fotos desde aviones, en la playa con sus computadoras portátiles, desde piscinas y oficinas con vistas increíbles.