Swift e Objective-C no mesmo projeto

Não podemos negar que a nova linguagem de desenvolvimentos para os sistemas operacionais iOS e OS X da Apple veio para facilitar a vida dos desenvolvedores da plataforma, tanto pela facilidade e robustez que o Swift oferece. Mas isso não significa que o Objective-C morreu, pois ele continuará sendo utilizado em muitos projetos.

Sendo assim, ainda veremos inúmeros códigos espelhados por toda a internet em Objective-C e que não foi “migrado” para Swift. Mas não se preocupe, a compatibilidade das duas linguagens permite com que códigos escritos em ambas as linguagens possam coexistir no mesmo projeto.

Importando Objective-C dentro do Swift

Para importar arquivos em Objective-C para dentro de um projeto Swift, será necessário uma “ponte” para expor estes arquivos para o Swift, chamado de bridging header. Através do Xcode, ao importar estes arquivos será exibido uma caixa de diálogo para poder criar esta ponte automaticamente, tanto ao importar arquivos em Objective-C em projetos Swift quanto o inverso.

Xcode bridging header

Será criado um arquivo de cabeçalho (.h) com o nome do seu aplicativo seguido por “-Bridging-Header.h“. Neste arquivo, você importa todos os arquivos que deseja expor para o seu código Swift, para exemplo estou utilizando a category GZIP, que provê uma simples forma de comprimir e descomprimir:

#import "GZIP.h"

Além disso, certifique-se de ir em Build Settings do seu target e informar este arquivo na opção Objective-C Bridging Header, dentro de Swift Compiler – Code Generation. O caminho informado para este arquivo é relativo.

Agora, basta utilizar o recurso com a mesma sintaxe do Swift:

let compressed = NSData(contentsOfFile: sampleFile)
let decompressed = compressed.gunzippedData()

Pronto! É bem simples o funcionamento do mix and match das duas linguagens, assim você não fica limitado somente aos códigos em Swift, que por ser algo novo, o conteúdo encontrado na internet não é tão grande quanto Objective-C.

Deixe uma resposta