Como vocês podem ver, o projeto SwiftObjc foi criado para trabalhar "somente" com Swift:
O primeiro passo que precisamos realizar é criar um arquivo novo do tipo Objective-C - .m:
Ao clicar em Finalizar/Finish, irá aparecer no Xcode a seguinte tela:
Perguntando se deseja configurar/criar um Bridging Header do seu código em ObjC - nesse caso o arquivo User.m. Clique em Criar ou Create Bridging Header e irá aparecer em seu projeto os arquivos: User.m e SwiftObjc-Bridging-Header.h:
Importante: o arquivo Bridging-Header.h recebe como prefixo o nome que foi dado ao projeto.
Em Build Settings no Target do seu projeto, procure pelo termo Bridging Header e observe se o caminho para o arquivo encontra-se configurado:
Se não tiver, basta digitar o caminho até o arquivo .h:
Etapa 2 - Importando código Objective-C
A primeira coisa a fazer é importar o objeto User, mas para isso, precisa possuir uma interface. Crie um arquivo Header File da mesma forma que foi feita para o .m no projeto:
Veja como ficou o código em Objective-C:
//
// User.h
// SwiftObjc
//
// Created by Gera on 13/09/2018.
// Copyright © 2018 Geraldo Bastos. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface User: NSObject
@property (strong, nonatomic) NSString *name;
- (void) showName;
@end
//
// User.m
// SwiftObjc
//
// Created by Gera on 13/09/2018.
// Copyright © 2018 Geraldo Bastos. All rights reserved.
//
#import "User.h"
@implementation User
- (void) showName {
NSLog(@"User: %@", self.name);
}
@end
Depois dessa etapa, você precisa fazer o import da classe que deseja usar em seu código Swift:
//
// Use this file to import your target's public headers that you would like to expose to Swift.
//
#import "User.h"
Etapa 3 - Utilizando ObjC com Swift
Agora basta usar o objeto User em seu código escrito em Swift:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// ViewController.swift | |
// SwiftObjc | |
// | |
// Created by Gera on 13/09/2018. | |
// Copyright © 2018 Geraldo Bastos. All rights reserved. | |
// | |
import UIKit | |
class ViewController: UIViewController { | |
override func viewDidLoad() { | |
super.viewDidLoad() | |
// Do any additional setup after loading the view, typically from a nib. | |
self.createUser() | |
} | |
override func didReceiveMemoryWarning() { | |
super.didReceiveMemoryWarning() | |
// Dispose of any resources that can be recreated. | |
} | |
func createUser() { | |
let user = User() | |
user.name = "Bruce Wayne - 🦇" | |
user.showName() | |
} | |
} | |
Você pode fazer o download do projeto utilizado no arquivo clicando aqui para baixar em meu GitHub.