[iOS] Import Objective C library in Swift

mercredi 8 février 2017

Dans cet article, nous allons voir comment importer une librairie écrit en Objective C dans un projet Swift.
Il faut savoir que si vous utilisez cocoapods, vous n’avez pas besoin d’inclure un bridging header file dans votre projet même si ce pod est écrit en Objective C!
Il faut juste s’assurer que la directive use_frameworks! est implémentée dans le PodFile et ensuite faire un import comme en Swift.

import PKRevealController

Si ce n’est pas le cas, alors il faut insérer un header file.

Pour plus d’information sur l’installation d’un pod : cliquez ici

Une fois votre librairie embarquée dans votre projet, il faut créé un fichier header qui fera le pont entre les librairies Objective C et votre projet en Swift. C’est donc un simple fichier header dans lequel on insère les import de nos librairies en Objective C.

  • Dans Xcode, vous faites New > File > (iOS, watchOS, tvOS, or macOS) > Source > Header File.
  • Nommer le fichier AppName-Bridging-Header.h
  • Insérer vos import dans le fichier
    Si ce n’est pas un framework:
    #import "test.h"
    
    Sinon
    #import <test/test.h>
    
  • Il faut ensuite déclarer ce fichier header au compilateur Swift comme ceci: Dans le Build Settings, Swift Compiler – General, il faut rajouter le chemin vers le fichier header sous la section Objective-C Bridging Header.
    Attention: le chemin est le chemin relatif dans votre projet, similaire au chemin spécifié pour Info.plist dans Build Settings.
    AppName/AppName-Bridging-Header.h
    

Dans mon cas, j’utilise souvent cocoapods, donc pas nécessaire de faire ce travail par contre il m’est arrivé d’utiliser des librairies payantes non disponible en pods.

Tags: library , Objective C , Swift , Xcode