AVAudioPlayer オブジェクトを含むシングルトンを作成しました
#import <Foundation/Foundation.h>
#import <AVFoundation/AVFoundation.h>
@interface drwAudioPlayer : NSObject <AVAudioPlayerDelegate>
@property AVAudioPlayer *aPlayer;
+(drwAudioPlayer *) sharedPlayer {
static drwAudioPlayer *sharedPlayer = nil;
if (!sharedPlayer) {
sharedPlayer = [[super allocWithZone:nil] init];
}
return sharedPlayer;
}
-(void) setPlayerEpisode:(NSData *) episodeFile {
NSError *error;
aPlayer = nil;
aPlayer = [[AVAudioPlayer alloc] initWithData:episodeFile error:&error];
}
メイン ビューに上記のクラスを含め、タイプ drwAudioPlayer のオブジェクトを作成しました。を呼び出すと[drwAudioPlayer.aPlayer setPlayerEpisode:foo]
、新しいファイルがロードされ、古いファイルが解放されていることがわかります。
しかし、ファイルの再生を開始してから呼び出そうとするとすぐに、[drwAudioPlayer.aPlayer setPlayerEpisode:foo2]
ロードされる新しいファイルのサイズだけメモリが増加します。
新しいファイルをロードして再生する前に、基本的にメモリを解放するにはどうすればよいですか。
ARCを使用しています。