¡Sí tu puedes!
Si tiene una clase existente que le gustaría usar, realice el Paso 2 y luego salte al Paso 5 . (En algunos casos, tuve que agregar un #import <Foundation/Foundation.h
explícito #import <Foundation/Foundation.h
a un archivo Objective-C anterior). **
Paso 1: Agregar implementación de Objective-C – .m
- ¿Cómo puede restringir la sincronización de contactos de Facebook de iOS 6 a listas de amigos específicas?
- ¿Cuáles son algunas aplicaciones que pueden mejorar mi productividad, tanto en el trabajo como en mi vida cotidiana (iOS y Android)?
- ¿Apple está pagando a Twitter, o viceversa, por la integración de iOS en Twitter?
- ¿Por qué Android no puede administrar la RAM de manera tan eficiente como iOS?
- ¿Cómo puede implementar LiveTracking en su aplicación de Android e iOS?
Agregue un archivo .m
a su clase y CustomObject.m
nombre CustomObject.m
.
Paso 2: Agregar encabezado de puente
Al agregar su archivo .m
, es probable que reciba un mensaje similar al siguiente:
Haga clic en SÍ !
Si no vio el mensaje o eliminó accidentalmente su encabezado de puente, agregue un nuevo archivo .h
a su proyecto y -Bridging-Header.h
nombre -Bridging-Header.h
.
En algunas situaciones, particularmente cuando se trabaja con marcos Objective-C, no se agrega una clase Objective-C explícitamente y Xcode no puede encontrar el enlazador. En este caso, cree su archivo .h
nombrado como se mencionó anteriormente, luego asegúrese de vincular su ruta en la configuración del proyecto de destino de esta manera:
Nota
Es una buena práctica vincular su proyecto usando la macro $(SRCROOT)
para que si mueve su proyecto o trabaja con otros usando un repositorio remoto, todavía funcionará. $(SRCROOT)
puede considerarse como el directorio que contiene su archivo .xcodeproj. Podría verse así:
$ (SRCROOT) / Carpeta / Carpeta / – Bridging-Header.h
Paso 3: Agregue el encabezado Objective-C – .h
Agregue otro archivo .h
y CustomObject.h
nombre CustomObject.h
.
Paso 4: construye tu clase Objective-C
En CustomObject.h
#import
@interface CustomObject: NSObject
@property (fuerte, no atómico) id someProperty;
– (nulo) someMethod;
@fin
En CustomObject.m
#import “CustomObject.h”
@implementation CustomObject
– (nulo) someMethod {
NSLog (@ “SomeMethod Ran”);
}
@fin
Paso 5: Agregar clase al encabezado de puente
En YourProject-Bridging-Header.h
:
#import “CustomObject.h”
Paso 6: usa tu objeto
En SomeSwiftFile.swift
:
var instanceOfCustomObject: CustomObject = CustomObject ()
instanceOfCustomObject.someProperty = “Hola mundo”
println (instanceOfCustomObject.someProperty)
instanceOfCustomObject.someMethod ()
No hay necesidad de importar explícitamente; para eso sirve el encabezado de puente.
Usando clases rápidas en Objective-C
Paso 1: crear una nueva clase Swift
Agregue un archivo .swift
a su proyecto y MySwiftObject.swift
nombre MySwiftObject.swift
.
En MySwiftObject.swift
:
Fundación de importación
clase MySwiftObject: NSObject {
var someProperty: AnyObject = “Some Initializer Val”
en eso() {}
func someFunction (someArg: AnyObject) -> String {
var returnVal = “Me enviaste \ (someArg)”
return returnVal
}
}
Paso 2: Importar archivos Swift a la clase ObjC
En SomeRandomClass.m
:
#import ” – Swift.h”
El archivo: -Swift.h
ya debería crearse automáticamente en su proyecto, incluso si no puede verlo.
Paso 3: usa tu clase
MySwiftObject * myOb = [MySwiftObject new];
NSLog (@ “MyOb.someProperty:% @”, myOb.someProperty);
myOb.someProperty = @ “Hola Mundo”;
NSLog (@ “MyOb.someProperty:% @”, myOb.someProperty);
NSString * retString = [myOb someFunction: @ “Arg”];
NSLog (@ “RetString:% @”, retString);
Espero que esto ayude 🙂