Wie rufe ich in Objective-C mit NSTimer alle x Sekunden eine Methode auf?

Ich benutze Objective-C, Xcode 4.5.1 und arbeite an einer App für das iPhone.

Ich habe eine Methode A, in der ich eine andere Methode B aufrufen möchte, um alle x Sekunden eine Reihe von Berechnungen durchzuführen. In Methode A spiele ich eine Audiodatei ab. Methode B überwacht das Audio alle x Sekunden für die Dauer der Audiodatei.

ich habe gefundenNSTimer als mögliche Lösung, aber es fällt mir schwer, sie zum Laufen zu bringen / zu verstehen.

Ich möchte einfach alle x Sekunden Methode B aufrufen und ihre Berechnungen ausführen, aberNSTimer Ich muss einige Dinge angeben, von denen ich nicht sicher bin, was ich sagen soll.

[NSTimer scheduledTimerWithTimeInterval:(NSTimeInterval) 
target:(id) select:(SEL) userInfo:(id) repeats:(BOOL)];

Es ist mein Verständnis, dass beiNSTimeInterval Ich gebe das Intervall an, in dem ich willNSTimer zu bedienen. Aber wie kann ich festlegen, dass Methode B ausgeführt werden soll?

Ich habe mir Beispielcode angesehen und habe derzeit den Eindruck, dass ich die Methode bei derselect:'. Aber was schreibe ich am 'target:'? Warum sollte ich ein Ziel brauchen? Ich habe versucht einzutretenself', aber Xcode sagt mir:

Verwendung des nicht deklarierten Bezeichners "self"

[NSTimer scheduledTimerWithTimeInterval:0.1 target:self 
select:@selector(targetMethod:myVolumeMonitor()) userInfo:nil repeats:YES];

Also, ich denke 'self'soll ein Zeiger auf ein Objekt sein, aber wohin möchte ich zeigen?

Unten ist eine Vereinfachung meines Codes:

MethodA()
{
//Start playing an audio file.

//NSTimer calling Method B, as long the audio file is playing, every x seconds.
}

MethodB()
{
//Do calculations.
}

Ich wäre dankbar, wenn mir jemand Antworten geben könnte / mich in die richtige Richtung weisen könnte! (:

Antworten auf die Frage(4)

Ihre Antwort auf die Frage