次のように、AVAudioPlayer を非常に単純なクラスでラップしています。これにより、URL を指定してすぐに再生し、完了ブロックを呼び出すことができます。
[AudioPlayer playAudioWithURL:url
completionBlock:^{
//finished playing
}];
これを書いた理由は、とても簡単でシンプルだからです。デリゲートなどを実装する必要はありません...問題は、これが機能しないことです。関数でこれを行うと、明らかにスタックに割り当てられ、すぐに割り当てが解除され、サウンドの再生が停止します。
では、この種のラッパーを実装して、サウンドの再生が終了するまで参照を維持する最良の方法は何でしょうか? ありがとう