Язык - Objective-C
Я использую класс SoundEffect для воспроизведения короткого звука. Я использую NSTimer для вызова этого метода:
- (void)count {
count++;
if (count == 16) {
NSBundle *mainBundle = [NSBundle mainBundle];
SoundEffect *soundEffect = [[SoundEffect alloc] initWithContentsOfFile:[mainBundle pathForResource:@"beep" ofType:@"aif"]];
[soundEffect play];
count = 0;
}
seconds = seconds - 0.0625; // is equal to 1/16th of a second; effectively takes off one second per second
if (seconds == 0) {
[timer invalidate]; // cancels timer
[timer release];
}
[self convertSeconds];
}
(Подсчет только для того, чтобы звук воспроизводился с определенным интервалом.)
В любом случае, все работает нормально, но я думаю, что неэффективно продолжать выделять и инициализировать класс SoundEffect при каждом срабатывании моего таймера (что довольно часто). Есть ли способ, которым я могу aloc и init, когда я нажимаю кнопку, чтобы запустить таймер, и оставить его выделенным и инициализированным, так что все, что мне нужно сделать, это [soundEffect play]?
Спасибо!