Sto usando Objective-C, Xcode 4.5.1 e sto lavorando su un'app per iPhone.Come chiamare un metodo ogni x secondi in Objective-C usando NSTimer?
Ho un metodo A in cui voglio chiamare un altro metodo B per eseguire una serie di calcoli ogni x secondi. Nel metodo A inizio a riprodurre un file audio. Il metodo B monitorerà l'audio ogni x secondi per la durata del file audio.
Ho trovato NSTimer
come una potenziale soluzione, ma sto avendo difficoltà a farlo funzionare/capirlo.
Voglio semplicemente chiamare il metodo B ogni x secondi ed eseguire i suoi calcoli, ma NSTimer
mi richiede di fornire diverse cose di cui non sono sicuro di cosa dovrei dirlo.
[NSTimer scheduledTimerWithTimeInterval:(NSTimeInterval)
target:(id) select:(SEL) userInfo:(id) repeats:(BOOL)];
è la mia comprensione che alla NSTimeInterval
fornisco l'intervallo in cui voglio NSTimer
di operare. Ma come posso dire che esegue il metodo B?
Ho esaminato il codice di esempio e sono attualmente sotto l'impressione che fornisca il metodo allo select:
. Ma cosa scrivo al 'target:
'? Perché dovrei avere bisogno di un obiettivo? Ho cercato di entrare 'self
', ma Xcode mi dice:
L'utilizzo di identificatore non dichiarato 'sé'
[NSTimer scheduledTimerWithTimeInterval:0.1 target:self
select:@selector(targetMethod:myVolumeMonitor()) userInfo:nil repeats:YES];
Quindi, immagino 'self
' che si suppone essere un puntatore ad un oggetto , ma dove voglio puntare?
Qui di seguito è una semplificazione del mio codice:
MethodA()
{
//Start playing an audio file.
//NSTimer calling Method B, as long the audio file is playing, every x seconds.
}
MethodB()
{
//Do calculations.
}
sarei grato se qualcuno mi potrebbe fornire alcune risposte/mi punto nella giusta direzione! (:.
Grazie per la risposta! Sei stato di grande aiuto! Sono riuscito a capire tutto! (: @Hermann Klecker – RoelfMik
Siete i benvenuti. Se fosse stato utile, comunque, non mi dispiacerebbe un 'accettare'. :) –
Con un clic del mio mouse ti ho concesso un 'accept' :) – RoelfMik