У меня следующая проблема, сводящая меня с ума.Мое приложение должно воспроизводить тиковый звук каждую секунду определенное количество раз (например, 5) после нажатия пользователем кнопки.
Я использовал это:
<br>
for (int w=1; w<=5; w++) {<br>
[NSThread detachNewThreadSelector:@selector(tic) toTarget:self withObject:nil];<br>
[NSThread sleepForTimeInterval:1.0];<br>
}<br>
, где:
- (void)tic {<br>
NSAutoreleasePool *ticPool = [[NSAutoreleasePool alloc] init];<br>
player_tic = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath: [[NSBundle mainBundle] pathForResource:@"tick" ofType:@"aif"]] error:nil];<br>
[player_tic setDelegate:self];<br>
[player_tic play];<br>
[ticPool drain];<br>
}<br>
и:
- (void) audioPlayerDidFinishPlaying: (AVAudioPlayer *)player_tic successfully:(BOOL)flag {<br>
NSLog(@"Audio finished playing.");<br>
[player_tic release];<br>
}<br>
Кажется, все работает.Моя проблема в том, что объект освобождается вместе в конце.
Мне нужно, чтобы после каждого проигрываемого звука соответствующая player_tic была немедленно освобождена.
Другая информация:
In .m:
@synthesize player_tic;
In .h:
@interface myController : UIViewController {<br>
...<br>
AVAudioPlayer *player_tic;<br>
}<br>
@property (nonatomic, retain) AVAudioPlayer *player_tic;
На вершиневсе, у меня есть это предупреждение в сборнике:
local declaration of 'player_tic' hides instance variable
Пожалуйста, помогите мне!
Заранее большое спасибо.
- Карло