不釋放存儲器I創建一個單用包含AVAudioPlayer對象AVAudioPlayer與ARC
#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。
嘗試self.aPlayer =零替代,或者用_aPlayer =零,因爲你不合成 –
我的不好,我正在用我的代碼合成aPlayer。只是複製它錯了。但我試過self.aPlayer,但結果是一樣的。只要我開始播放,aPlayer就不會被釋放。 – Peter