我正在开发一款游戏,起初看起来运行得很好,但是.......在它运行了很长时间之后,声音首先停止工作,[[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error]; 返回一个空值,稍后当我尝试通过 view.image= 将视图设置为等于新图像时,我在控制台中收到一个错误,显示许多文件已打开,ImageIO: CGImageRead_mapData 'open' failed '/ Users/deno/Library/Application Support/iPhone Simulator/5.1/Applications/5A0C777C-70D1-4AA0-8D7B-04A1F734C932/cPetCakes.app/twinkles04fin32.png' 错误 = 24(打开的文件太多)
现在我创建一个新的,每次播放声音时我都会创建一个新的 AVAudioPlayer 对象。我应该重新使用该对象还是如何释放它???由于我没有使用分配器,我在想对象会被自动释放???
声音代码
-(void) PlaySound: (NSString *) name
{
NSURL *url;
if ( [name compare:@"chasdog"]==0)
url = [[NSBundle mainBundle]
URLForResource:name
withExtension:@"wav"];
else
url = [[NSBundle mainBundle]
URLForResource:name
withExtension:@"mp3"];
NSError *error;
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
audioPlayer.volume=1.0;
audioPlayer.numberOfLoops= 0;
[audioPlayer play];
audioPlayer.delegate = self;
}
不再加载新图像的代码
self.image=gPetCakeB[gGame->mPetCakeId];