AudioPlaybackCompleteからメソッドを呼び出すと、宣言されていない識別子の自己エラーが発生します。なぜ、またはどのように修正できるか知っている人はいますか?
static void AudioPlaybackComplete(SystemSoundID ssID, void *data)
{
[self doSomething]; /// error use of undeclared identifier self
}
AudioPlaybackCompleteからメソッドを呼び出すと、宣言されていない識別子の自己エラーが発生します。なぜ、またはどのように修正できるか知っている人はいますか?
static void AudioPlaybackComplete(SystemSoundID ssID, void *data)
{
[self doSomething]; /// error use of undeclared identifier self
}
データポインタ*dataを使用して、オブジェクト(自分で参照するオブジェクト)を渡す必要があります。オブジェクトを直接ポイントするか(使用するために適切なクラス/タイプのオブジェクトにキャストバックします)、*dataが指すC構造体の要素としてオブジェクトを渡します。
Objective Cのメソッド呼び出しもこれを行いますが、自分自身を自動的に渡して設定し、コード化することによって明示的にではなく、コンパイラーによってビューから隠されます。C関数を使用しているため、これを自分でコーディングする必要があります。
静的関数内からselfを呼び出しています。selfはクラスの特定のインスタンスを指します。