¿Cómo llamar a un método cada x segundos en Objective-C usando NSTimer?
Estoy usando Objective-C, Xcode 4.5.1 y estoy trabajando en una aplicación para el iPhone.
Tengo un método A en el que quiero llamar a otro método B para hacer una serie de cálculos cada x segundos. En el método A empiezo a reproducir un archivo de audio. El Método B monitoreará el audio cada x segundos durante la duración del archivo de audio.
he encontradoNSTimer
como una solución potencial, pero estoy teniendo dificultades para hacer que funcione / entenderla.
Simplemente quiero llamar al Método B cada x segundos y ejecutar sus cálculos, peroNSTimer
me obliga a proporcionar varias cosas de las que no estoy seguro de lo que se supone que debo decir.
[NSTimer scheduledTimerWithTimeInterval:(NSTimeInterval)
target:(id) select:(SEL) userInfo:(id) repeats:(BOOL)];
Tengo entendido que enNSTimeInterval
Proporciono el intervalo en el que quieroNSTimer
para operar. Pero, ¿cómo le digo que ejecute el Método B?
He mirado el código de ejemplo y actualmente tengo la impresión de que proporciono el método en el 'select:
'. Pero, ¿qué escribo en el 'target:
'? ¿Por qué necesitaría un objetivo? Intenté entrar 'self
', pero Xcode me dice:
Uso del identificador no declarado 'self'
[NSTimer scheduledTimerWithTimeInterval:0.1 target:self
select:@selector(targetMethod:myVolumeMonitor()) userInfo:nil repeats:YES];
Por lo tanto, me imagino 'self
'se supone que es un puntero a un objeto, pero ¿hacia dónde quiero apuntar?
A continuación se muestra una simplificación de mi código:
MethodA()
{
//Start playing an audio file.
//NSTimer calling Method B, as long the audio file is playing, every x seconds.
}
MethodB()
{
//Do calculations.
}
¡Le agradecería que alguien me diera algunas respuestas o me indicara la dirección correcta! (: