web-dev-qa-db-fra.com

En-tête de pontage Objective-C pour les cadres

J'ai créé un framework qui nécessite le framework sqlite3. Comment ajouter un en-tête de pontage Objective-C pour mon framework qui importe sqlite3 dans mon fichier Swift?

J'ai déjà un fichier d'en-tête de pontage pour mon projet, mais pas pour mon framework.

17
Gustaf Rosenblad

J'ai trouvé un Objective-C Bridging Header paramètre dans les paramètres de build cibles. Il était masqué par défaut. Cochez Tout au lieu de Basique.

Dans les versions récentes de Xcode, cette solution donnerait l'erreur Using bridging headers with framework targets is unsupported.

La solution de contournement que j'utilise consiste à rendre l'en-tête C public dans l'inspecteur de fichier et à l'importer dans MyFramework.h comme cet exemple:

#import <MyFramework/MyObjectiveC.h>

Comment changer l'en-tête C en public

Ouvrez votre en-tête C et affichez l'inspecteur en cliquant dans le coin supérieur droit. Pour afficher l'inspecteur de fichiers, cliquez sur l'icône de fichier dans le coin supérieur droit.

enter image description here

33
Gustaf Rosenblad

il vous suffit d'importer votre framework sqlite3 dans votre fichier de pontage objective-c. Vous pouvez ensuite l'utiliser automatiquement dans Swift.

Documents Apple:

L'interopérabilité est la capacité d'interfacer entre Swift et Objective-C dans les deux sens, vous permettant d'accéder et d'utiliser des morceaux de code écrits dans une langue dans un fichier de l'autre langue. Lorsque vous commencez à intégrer Swift dans votre flux de travail de développement d'applications, c'est une bonne idée de comprendre comment vous pouvez tirer parti de l'interopérabilité pour redéfinir, améliorer et améliorer la façon dont vous écrivez des applications Cocoa. Un aspect important de l'interopérabilité est qu'il vous permet de travailler avec les API Objective-C lors de l'écriture de code Swift. Après avoir importé un framework Objective-C, vous pouvez instancier des classes à partir de celui-ci et interagir avec elles à l'aide de la syntaxe native Swift.

[~ # ~] éditez [~ # ~] : Vous pouvez même importer un framework Objective-C ou Swift ou un mixed- cadre de langage juste dans votre fichier Swift avec

import yourFramework

Documents Apple:

Importation de cadres externes

Vous pouvez importer des cadres externes qui ont une base de code Objective-C pure, une base de code Swift pure ou une base de code en langage mixte. Le processus d'importation d'un framework externe est le même, que le framework soit écrit dans une seule langue ou qu'il contienne des fichiers des deux langues. Lorsque vous importez un framework externe, assurez-vous que le paramètre de construction Définit le module pour le framework que vous importez est défini sur Oui.

Vous pouvez importer un framework dans n'importe quel fichier Swift dans une cible différente en utilisant la syntaxe suivante:

Rapide

import FrameworkName

Vous pouvez importer un framework dans n'importe quel fichier Objective-C .m au sein d'une cible différente à l'aide de la syntaxe suivante:

@import FrameworkName;
4
Bas