EAGLView クラスでは、問題なく C クラスからメンバー関数を呼び出す必要があります。ただし、C クラス内では、Objective-C 関数「[context renderbufferStorage:GL_RENDERBUFFER fromDrawable:(CAEAGLLayer*)self.layer];」を呼び出す必要が生じますが、これは純粋な C 構文を使用して実現することはできません。
Objective-C と C を混合するには、注意して進めてください。ここでは、C ラッパー関数を使用して Objective-C 呼び出しをラップするための段階的なアプローチを示します:
C インターフェイス ヘッダーの作成:
Objective-C クラスを定義します。
C クラスを実装します:
PIMPL (実装へのポインタ)イディオムはオブジェクト指向に利用できます実装:
C インターフェイスの定義:
Objective-C クラス インターフェイスを作成します:
Objective-C クラス実装を作成します:
C クラスを実装します。
このアプローチは、より分離された柔軟なソリューションを提供し、C コードに影響を与えることなく Objective-C 実装と C ラッパーを変更できるようにします。
以上がC メンバー関数から Objective-C メソッドを呼び出す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。