Jak wywołać metodę co x sekund w Objective-C przy użyciu NSTimer?
Używam Objective-C, Xcode 4.5.1 i pracuję nad aplikacją na iPhone'a.
Mam metodę A, w której chcę wywołać inną metodę B, aby wykonać serię obliczeń co x sekund. W metodzie A rozpoczynam odtwarzanie pliku audio. Metoda B będzie monitorować dźwięk co x sekund przez czas trwania pliku audio.
znalazłemNSTimer
jako potencjalne rozwiązanie, ale trudno mi go uruchomić / zrozumieć.
Chcę po prostu wywoływać metodę B co x sekund i uruchamiać jej obliczenia, aleNSTimer
wymaga ode mnie podania kilku rzeczy, o których nie wiem, co mam to powiedzieć.
[NSTimer scheduledTimerWithTimeInterval:(NSTimeInterval)
target:(id) select:(SEL) userInfo:(id) repeats:(BOOL)];
Rozumiem to wNSTimeInterval
Zapewniam przerwę, w której chcęNSTimer
operować. Ale jak mam powiedzieć, żeby uruchomił metodę B?
Przejrzałem przykładowy kod i mam wrażenie, że udostępniłem metodę w 'select:
” Ale co piszę w 'target:
? Dlaczego miałbym potrzebować celu? Próbowałem wejść ”self
', ale Xcode mi mówi:
Użycie niezadeklarowanego identyfikatora „własny”
[NSTimer scheduledTimerWithTimeInterval:0.1 target:self
select:@selector(targetMethod:myVolumeMonitor()) userInfo:nil repeats:YES];
Więc myślę ”self
'ma być wskaźnikiem do obiektu, ale gdzie chcę wskazać?
Poniżej znajduje się uproszczenie mojego kodu:
MethodA()
{
//Start playing an audio file.
//NSTimer calling Method B, as long the audio file is playing, every x seconds.
}
MethodB()
{
//Do calculations.
}
Byłbym wdzięczny, gdyby ktoś dostarczył mi pewnych odpowiedzi / wskazał mi właściwy kierunek! (: