Pesquisar

quinta-feira, 13 de setembro de 2018

Como chamar código Objective-C usando o Swift

Existem muitas dúvidas se conseguimos combinar em um projeto iOS totalmente escrito em Swift com trechos de código em Objective-C (ObjC). Essa foi uma das primeiras dúvidas quando a Apple lançou a linguagem Swift e até hoje existe esse questionamento, visto que muitas bibliotecas/frameworks foram criadas utilizando o ObjC e até mesmo código legado.



Etapa 1 - Inserindo código em ObjC

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:



Depois dessa etapa, você precisa fazer o import da classe que deseja usar em seu código Swift:


Etapa 3 - Utilizando ObjC com Swift

Agora basta usar o objeto User em seu código escrito em Swift:


Você pode fazer o download do projeto utilizado no arquivo clicando aqui para baixar em meu GitHub.