プロジェクト内での C と Objective-C の混合
同じプロジェクト内で C と Objective-C を混合することは、いくつかの注意事項を除けば実現可能です。 C から Objective-C メソッドを呼び出すには、非 Objective-C コードに C スタイルのインターフェイスを提供する標準 C ラッパー関数を使用できます。
C ラッパー関数のアプローチ
次のファイル:
-
MyObject-C-Interface.h: C ラッパー関数 MyObjectDoSomethingWith を宣言します。
-
MyObject.h: Objective-C クラスと、C から呼び出したいメンバー関数を定義します。
-
MyObject .mm: ラッパー関数 MyObjectDoSomethingWith と Objective-C メンバーを実装します。 function.
-
MyCPPClass.cpp: ラッパー関数ヘッダーをインクルードし、ラッパー関数を使用して Objective-C メソッドを呼び出す C クラスを実装します。
ラッパー関数を使用すると、Objective-C ヘッダーをインクルードする必要がなく、C 構文を使用して C から Objective-C メソッドを呼び出すことができます。 C コード。
PIMPL パターンのアプローチ
C と Objective-C を混合するもう 1 つの方法は、PIMPL (実装へのポインター) パターンを使用することです。
-
MyObject-C-Interface.h: PIMPL のインターフェイスを定義します (実装) class.
-
MyObject.h: Objective-C クラスを宣言します。これは PIMPL クラスに委譲されます。
-
MyObject.mm: 実装PIMPL クラスと Objective-C クラスのメソッド。対応する PIMPL を呼び出します。 Methods.
-
MyCPPClass.h: PIMPL インターフェイスをインクルードし、ラッパー関数を使用して PIMPL メソッドを呼び出す C クラスを定義します。
-
MyCPPClass。 cpp: PIMPL ラッパー関数を使用して Objective-C を呼び出す C クラスを実装します。
このアプローチにより、Objective-C の実装が非公開に保たれるため、後からの変更や交換が容易になります。
必ず必要なヘッダーをインクルードし、適切な構文を使用して、 C と Objective-C 間の統合がシームレスであることを保証します。
以上がC と Objective-C をプロジェクトにシームレスに統合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。