Mélanger C et Objective-C dans votre projet
Mélanger C et Objective-C dans un même projet est réalisable avec quelques précautions. Pour invoquer des méthodes Objective-C à partir de C, vous pouvez utiliser une fonction wrapper C standard qui offre une interface de style C pour le code non-Objective-C.
Approche de la fonction Wrapper C
Créez le fichiers suivants :
-
MyObject-C-Interface.h : Déclarez la fonction wrapper C MyObjectDoSomethingWith.
-
MyObject.h: Définissez votre classe Objective-C et la fonction membre que vous souhaitez appeler depuis C .
-
MyObject.mm: Implémenter la fonction wrapper MyObjectDoSomethingWith et le membre Objective-C function.
-
MyCPPClass.cpp : Incluez l'en-tête de la fonction wrapper et implémentez votre classe C, qui utilise la fonction wrapper pour appeler la méthode Objective-C.
La fonction wrapper vous permet d'appeler des méthodes Objective-C depuis C en utilisant la syntaxe C, sans avoir besoin d'inclure des en-têtes Objective-C dans votre C. code.
Approche du modèle PIMPL
Une autre façon de mélanger C et Objective-C consiste à utiliser le modèle PIMPL (Pointer to Implementation) :
-
MyObject -C-Interface.h : Définir l'interface pour le PIMPL (implémentation) class.
-
MyObject.h : Déclarez votre classe Objective-C, qui délègue désormais à la classe PIMPL.
-
MyObject.mm : Implémentez la classe PIMPL et les méthodes de classe Objective-C, qui appellent le PIMPL correspondant méthodes.
-
MyCPPClass.h : Incluez l'interface PIMPL et définissez votre classe C, qui utilise les fonctions wrapper pour appeler les méthodes PIMPL.
-
MyCPPClass. cpp : Implémentez votre classe C, qui utilise les fonctions wrapper PIMPL pour appeler l'Objective-C méthodes.
Cette approche maintient votre implémentation Objective-C privée, ce qui facilite la modification ou l'échange ultérieur.
N'oubliez pas d'inclure les en-têtes nécessaires et d'utiliser la syntaxe appropriée pour assurez-vous que l'intégration entre C et Objective-C est transparente.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!