0

どうにかしてC++クラスメンバー関数でperformSelectorを呼び出すことはできますか?

performSelector 呼び出しを受け取るダミーの objc クラスを作成し、このダミー クラスが目的の c++ メンバー関数を呼び出すことを考えています。

しかし、より良い方法はありますか?

(メソッドをすぐに呼び出したくない理由は、スレッド化のためです)

4

2 に答える 2

1

内部の基本的な違いのため、c++ クラス インスタンスで目的の c メッセージを呼び出すことはできません (目的の c ランタイムを必要とする objc_msgSend() を調べてください)。関数ポインターを調べたり、bindfunctionなどの C++ ライブラリを強化したりできます。または、あなたが言うように、obj c メッセージを c++ メソッド呼び出しとして転送するラッパーを作成することもできます。

于 2011-10-21T13:55:03.523 に答える
0

これを行う良い方法はありません。Objective-C のダミー レシーバーを作成し、そこから C++ クラスを呼び出します。C++ クラスで UI イベントを受け取るために、同じことを行いました。

于 2011-10-21T13:54:06.830 に答える