2009-06-13 24 views
0

私はこのように私のiPhoneアプリでは、いくつかの.wavファイルをロードします。.wavファイルに割り当てたメモリを解放または解放するにはどうすればよいですか?

SoundEngine_LoadLoopingEffect([[bundle pathForResource:@"loop" ofType:@"wav"] UTF8String], NULL, NULL, &MySounds[Loop]); 

SoundEngine_LoadEffect([[bundle pathForResource:@"intro" ofType:@"wav"] UTF8String], &MySounds[IntroMusic]); 

「intro.wav」ファイルには、いくつかのスペース(約2メガ)を占めています。私はアプリが起動したときに一度だけ再生します。私は、この.wavファイルのために割り当てられたメモリを解放するか解放したいと思います。これどうやってするの?

はい:

SoundEngine_Teardown(); 

は私がSoundEngine_LoadEffectを呼び出すことによって割り当てられたすべてのメモリを解放しますか?

答えて

1

それはそれへの参照を削除する必要があります - しかし、あなたは、これらのオブジェクトを自分に「アロケーション」または「initは」と呼ばれていないので、あなたの行う「自身」ではない彼ら

(つまりにObjCのメモリ管理の黄金律です)

これらは制御スレッドの自動解放プールに渡され、必要に応じて解放されます。つまり、心配する必要はありません。

+0

お返事ありがとうございます:-)実際にロード、再生、アンロードする場合はどうしたらいいですか? (ファイルが大きいかもしれませんし、私が必要としないときにメモリを使いたくない) – MrDatabase

+0

libsndfileを使用したいと思います。ビルドしたものを、特に.wav – Chaos

関連する問題