0 Compartilhamentos 171 Views

Como aproveitar suas classes do Objective-C no Swift e vice-versa

A Apple prometeu continuar dando suporte ao Objective-C no iOS 8. Mas todos nós sabemos que a grande maioria dos desenvolvedores vai preferir trocar para o Swift, a nova linguagem da Apple. Ela é mais rápida, consome menos recursos, é mais fácil de desenvolver e tem um longo futuro pela frente na plataforma.

Mas, se você usou Objective-C por anos, pode ser um pouco difícil migrar de linguagem. Principalmente se você já tem um projeto no meio do caminho.

Felizmente, é possível aproveitar suas classes criadas no Objective-C no Swift. E vice-versa. Vamos aprender como.

A própria Apple  tem uma boa documentação sobre o tema . Então, se você tem uma classe existente que gostaria de usar, execute o passo 2 e então pule direto para o passo 5. Em alguns casos, você precisará adicionar explicitamente um arquivo antigo do Objective-C:

1: Adicione uma Implementação do Objective-C (.m)

Adicione um arquivo .m à sua classe, e nomeie como CustomObject.m

2: Adicione um Bridging Header

Ao adicionar seu arquivo .m, você provavelmente verá uma tela similar à imagem abaixo. Clique em Yes:

objective-c-bridging

Se você não passar por esta tela ou acidentalmente deletar seu bridging header, adicone um novo arquivo .h ao seu projeto e nomeio-o como <#SeuNomedeProjeto>-Bridging-Header.h

3: Adicione um Objective-C Header (.h)

Adicione outro arquivo .h e nomeio-o como CustomObject.h

4: Monte sua Classe Objective-C

Em CustomObject.h:

Em CustomObject.m:

5: Adicione a Classe ao Bridging-Header

Em SeuNomedeProjeto-Bridging-Header.h:

6: Use Seu Objeto

Em SeuArquivoSwift.swift:

Não há a necessidade de importar explicitamente, é para isso que server o bridging header.

Usando Classes do Swift no Objective-C

E o caminho inverso? Mais fácil ainda, basta seguir os seguintes passos:

1: Crie uma Nova Classe no Swift

Adicione um arquivo .swift ao seu projeto e nomeio-o como MeuObjetoSwift.swift

Em MeuObjetoSwift.swift:

2: Importe Arquivos Swift para uma Classe de Objective-C

Em MinhaClasse.m:

O arquivo <#NomedoProjeto#>-Swift.h já deve ter sido criado automaticamente em seu projeto, mesmo que você não esteja visualizando ele.

3: Use Sua Classe

Observação: Neste estágio inicial de suporte à linguagem, é possível que o CodeCompletion não se comporte adequadamente. Rode uma montagem rápida com CMD + r para ajudar o Swift a encontrar o código Objective-C e vice-versa.

Você pode se interessar

Promoções de Jogos do Final de Semana (17/01)
Notícias
10 visualizações
Notícias
10 visualizações

Promoções de Jogos do Final de Semana (17/01)

Carlos L. A. da Silva - 17 de janeiro de 2020

Confira as melhores ofertas de jogos de PC para o final de semana.

Dez habilidades essenciais para desenvolvedores em 2020
Artigos
10 visualizações
Artigos
10 visualizações

Dez habilidades essenciais para desenvolvedores em 2020

Carlos L. A. da Silva - 16 de janeiro de 2020

Amplie e aperfeiçoe seu arsenal de conhecimento com essas competências fundamentais.

Promoções de Jogos do Final de Semana (10/01)
Notícias
19 visualizações
Notícias
19 visualizações

Promoções de Jogos do Final de Semana (10/01)

Carlos L. A. da Silva - 10 de janeiro de 2020

Confira as melhores ofertas de jogos de PC para o final de semana.

Mais publicações

A IA do Google derrubou o câncer de mama? Não exatamente
Artigos
20 visualizações
20 visualizações

A IA do Google derrubou o câncer de mama? Não exatamente

Carlos L. A. da Silva - 10 de janeiro de 2020
Mudanças no YouTube para conteúdo infantil já estão valendo
Notícias
21 visualizações
21 visualizações

Mudanças no YouTube para conteúdo infantil já estão valendo

Carlos L. A. da Silva - 7 de janeiro de 2020
Frameworks de servidor HTTP para Dart
Artigos
32 visualizações
32 visualizações

Frameworks de servidor HTTP para Dart

Carlos L. A. da Silva - 6 de janeiro de 2020
Promoções de Jogos do Final de Semana (03/01)
Notícias
21 visualizações
21 visualizações

Promoções de Jogos do Final de Semana (03/01)

Carlos L. A. da Silva - 3 de janeiro de 2020