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! (: