Est-il possible d'utiliser un CocoaPod écrit en Objective-C dans mon Swift projet en utilisant swift?
Est-ce que je fais juste un en-tête de pontage? Et si oui, puis-je accéder aux objets, aux classes et aux champs définis par les bibliothèques du CocoaPod dans Swift?
La réponse de base à votre question est Oui, vous pouvez utiliser le code objective-c construit avec CocoaPods.
La question la plus importante est "Comment utiliser de telles bibliothèques?"
La réponse à cette question dépend de use_frameworks!
drapeau dans votre Podfile
:
Imaginons que vous souhaitiez utiliser le module Objective-C portant le nom CoolObjectiveCLib
.
Si votre fichier pod utilise use_frameworks!
drapeau:
// Podfile
use_frameworks!
pod 'CoolObjectiveCLib'
Ensuite, vous n'avez pas besoin d'ajouter de fichiers d'en-tête de pont.
Tout ce dont vous avez besoin est un cadre d’importation dans Swift:
// MyClass.Swift
import CoolObjectiveCLib
Vous pouvez maintenant utiliser toutes les classes présentées dans lib.
Si votre fichier pod n'utilise pas use_frameworks!
drapeau:
// Podfile
pod 'CoolObjectiveCLib'
Ensuite, vous devez créer un fichier d’en-tête de pontage et y importer tous les en-têtes Objective-C nécessaires:
// MyApp-Bridging-Header
#import "CoolObjectiveCLib.h"
Vous pouvez maintenant utiliser toutes les classes définies dans les en-têtes importés.
Dans podFile, utilisez le drapeau use_frameworks
! Dans Xcode, dans la structure de dossiers Pod
de la dépendance, vous ajoutez xxxxxxx-umbrella.h
dans fichiers de support.
Dans votre {PROJECT_NAME}-Bridging-Header.h
utilisation:
#import "xxxxxxx/xxxxxxx-umbrella.h"
Ça marche pour moi.
ET n'oubliez pas d'ajouter le nom du fichier en-tête de pontage dans Cible -> Paramètres de construction -> En-tête de pontage Objective-C
Vous avez juste besoin d'un en-tête de pontage et importez ce dont vous avez besoin.