1

これは本当に初心者の質問ですが、これを解決する良い方法がわかりません。

問題: ViewController に「モデル」に、再生するサウンドと、いつ変更して再生する必要があるかを伝えたい。

私が持っているもの: 私が作成した AudioPlayer クラスは、NSObject の単なるサブクラスです。私の audioSession をセットアップし、私のアプリの音の進行を処理します。ここで、基本的には、ViewController が AudioPlayer クラスに整数を送信できるようにし、そのクラスにプレーヤーの新しいサウンド パスにスワップする関数を実行させたいだけです。プレーヤーは AudiPlayer クラスに属するオブジェクトであり、グローバル/共有関数から呼び出すことはできません。

私が試したこと: グローバル変数を持ち、ViewControllers からそれらを設定しても、クラス内関数を呼び出すという問題は解決しません。私は実際に、クラス内から関数を呼び出してグローバルブール値がTRUEに設定されているかどうかを定期的にチェックし、サウンドスワップを実行する繰り返しタイマーでこの問題を通過しましたが、これは非常に面倒です..これはできません最適な方法?

私はシングルトンを試してきました(私のクラスは現在です)..それがこの問題の解決に役立っているわけではありません

私もデリゲートを見てきましたが、それらを使用すると、常にオーディオプレーヤーのデリゲートを台無しにしてしまいます(私は思います!)。ただし、プレーヤーのセットアップをデバッグすると、次のように表示されます: audioplayer error: unknown class.

この問題に対する提案や適切な回答は非常に高く評価されています。 ありがとうございました

4

1 に答える 1

1

モデルは「再生」する (または実際に何かを行う) べきではありません。それは単なるデータです。
したがって、モデルに何を再生するかを伝える代わりに、ビューコントローラーはモデルに何を再生する必要があるかを尋ね、それ自体を再生する必要があります。

あなたの質問を理解しているように、あなたのAudioPlayerは(オーディオを再生するため)「モデル」クラス以上のものですが、クラスについて適切なコメントをするには、明らかにコードを見る必要があります。

于 2013-09-06T10:14:00.677 に答える