ios - stop - timer for intervals
IOS-Creación y uso de temporizadores específicos de intervalo (4)
Soy un desarrollador de IOS novato, pero tengo una buena experiencia en el desarrollo de Android. Mi pregunta es sobre la creación y el uso de temporizadores específicos de intervalo.
En Android podría fácilmente hacer un temporizador como este:
timedTimer = new Timer();
timedTimer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
TimedMethod();
}
}, 0, 1000);
Cuando el intervalo es 1000 MS y el método TimedMethod () se llama en cada tic. ¿Cómo haría para implementar una función similar en iOS?
Gracias por leer! ¡Cualquier ayuda en absoluto sería grande! :-)
Puedes usar un NSTimer
repetición así:
- (void) startTimer {
[NSTimer scheduledTimerWithTimeInterval:1
target:self
selector:@selector(tick:)
userInfo:nil
repeats:YES];
}
- (void) tick:(NSTimer *) timer {
//do something here..
}
Utilice el siguiente método presente en el archivo NSTimer.h de Foundation Framework
Sintaxis:
+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo;
Uso
#define kSyncTimerLength 4 //Declare globally
-(void) timerActivityFunction; //Declare in interface
[NSTimer scheduledTimerWithTimeInterval:kSyncTimerLength target:self
selector:@selector(timerActivityFunction) userInfo:nil repeats:NO];
-(void) timerActivityFunction {
// perform timer task over-here
}
Utilizar
[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerCallback) userInfo:nil repeats:YES];
En la misma clase en que llamó al método anterior, cree un método llamado timerCallback
. Esto será llamado cada vez que su temporizador se encienda; cada 1000 milisegundos.
Para Swift:
Cree un objeto temporizador utilizando la línea inferior que llamará al método de carga cada 10 segundos. Si obtiene no implementa methodSignatureForSelector, amplíe su clase con NSObject. Lea esto para obtener más información. El objeto X de la clase Y no implementa methodSignatureForSelector en Swift
timer = NSTimer.scheduledTimerWithTimeInterval(10.0, target: self, selector: "upload", userInfo: nil, repeats: true)
func upload() {
print("hi")
}