特定のビューでは、AVAudioPlayerプロパティがたくさんあり、それぞれが特定のユーザーアクションで再生されることになっています。選択したAVAudioPlayerが再生されているときに、別のAVAudioPlayerが再生された場合は、停止する必要があります。
これを管理するために、すべてのAVAudioPlayerプロパティを保持する配列を作成しました。ユーザーが選択すると、選択したAVAudioPlayerを再生する前に、すべてのAVAudioPlayerを確認して停止します。
問題は、配列を作成するための適切な場所が最初(たとえば、ViewDidLoad)であり、この時点でAVAudioPlayerプロパティのいずれもalloc + initを通過しなかったことです。したがって、デバッガーで配列を見ると、次のように表示されます。空(オブジェクトの数= 0)。現在、ユーザーが実際に特定のAVAudioPlayerを選択している場合にのみ、alloc+initアクションを実行します。
最初はすべてのAVAudioPlayerに対してalloc+initを実行することもできますが、必ずしも必要ではないリソースが必要になります。
必要なリソースを使用せずにこのアレイを作成する方法はありますか?つまり、「空の」オブジェクトを使用してアレイを作成し、後でそれらを割り当てて開始しますか?