2012-03-12 8 views
0

簡単な質問:AVAudioPlayerインスタンスのデリゲートを複数のクラスに設定できますか?AVAudioPlayer Delegateを複数のクラスに設定しますか?

私のプログラムでは、サウンドの再生が終了したときに2つのクラスに通知する必要がありますが、その方法はわかりません。

ご協力いただければ幸いです。

答えて

1

まあそれは不可能です。通知を登録して通知することでそれを行うことができます。 Hereは、クラスcをクラスに登録して通知するためのコードです。

ですから、一つのクラスのデリゲートを設定することができ、そこにあなたが

- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag 
{ 
    NSLog(@"delegate called"); 
    [[NSNotificationCenter defaultCenter] 
       postNotificationName:AUDIO_PLAYER_FINISHED_PLAYING object:nil]; 

} 
+0

おかげで、他のクラスを通知することができ、私はそれを試してみますよ – Fitzy

0

いいえ、デリゲートは常に1つのインスタンスに過ぎません。 デリゲートである新しいクラスを作成し、他の2つのクラスにイベントについて通知するためにNSNotificationを送信させることができます。