2日間さらに調査して解決できなかったので、問題があります。
ストリーミング オーディオを実行するクラスにアプリがあります。別のビューには、URL を介して開かれるポッドキャストを含むテーブルがあります。
最初のクラスのコードを利用するためにデリゲートを作成したので、ユーザーがオーディオ ポッドキャストを再生するときは、パラメーター (この場合は URL) を変更するだけでメイン クラスのメソッドを占有します。
デリゲートは正しく機能し、パラメーターも渡します。唯一の問題は、デリゲートがメイン クラスをインスタンス化する必要があることです。
ClassePrincipal *classePrincipal = [[ClassePrincipal alloc] init];
classePrincipal.delegate = self;
[classePrincipal method];
オーディオがメイン クラスで既に実行されており、新しいオブジェクト クラスとしてインスタンス化されている場合、既に実行されているものの上にオーディオ Podcast の再生が開始されます。
そして、彼がポッドキャストを再生し続ける前に、私が大きなストップを持っていたとしても、例えば:
- (void) playPodcast {
[classePrincipal destroyStreamer];
[classePrincipal startStream];
}
destroyStreamer メソッドは正しく呼び出されますが、インスタンスが最初から classePrincipal から作成されたため、オーディオが再生されていません。
質問を転がしましたが、クラスをインスタンス化せずに ClassePrincipal を渡すパラメーターのメソッドを呼び出す方法はありますか? メモリに新しいオブジェクトを割り当てていないため、オーディオが再生されているかどうかを確認できました。
他に解決方法があればよろしくお願いします。