2010-06-22 25 views
5

estoy acostumbrado a trabajar con temporizadores en el iPhone y necesitaría algún tipo de apoyo.Llamar a un método NSTimer

Tengo un método como el siguiente que toma el tiempo y actualiza un UILabel en mi userinterface. También tengo un NSTimer que llama a ese método una vez por segundo (solo muestro horas y minutos). Esto funciona muy bien, excepto por el primer segundo de la aplicación es en vivo (como entiendo que se necesita un segundo antes del timer llama al método).

me gustaría llamar a mi método de viewDidLoad, pero ¿cómo puede suministrar Yo los argumentos correctos? ¿O hay una mejor manera de hacer esto?

// Timer for updating time 
[NSTimer scheduledTimerWithTimeInterval:1.0f 
           target:self 
           selector:@selector(updateTime:) 
           userInfo:nil 
           repeats:YES]; 


-(void)updateTime: (NSTimer *) timer { 

    currentTime = [NSDate date]; 
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    // display in 12HR/24HR (i.e. 11:25PM or 23:25) format according to User Settings 
    [dateFormatter setTimeStyle:NSDateFormatterShortStyle]; 
    NSString *currentTimeString = [dateFormatter stringFromDate:currentTime]; 
    [dateFormatter release]; 

    timeLabel.text = currentTimeString; 
} 

Apreciar cualquier cosa que me señale en la dirección correcta.

Respuesta

2

En su método, que no utiliza la variable de contador de tiempo ¿verdad? Entonces, ¿por qué solo llama al [self updateTime:nil]. Eso debería funcionar

+0

Si usted tiene razón. Una solución tan simple y ordenada. Probado y funciona bien. Gracias! Parece ser también una solución con "fuego" que puede desencadenar el evento del temporizador, pero no he tenido el tiempo para probarlo todavía. – Structurer

2

Una opción más ... que puede hacer:

[NSTimer scheduledTimerWithTimeInterval:0.01f 
           target:self 
           selector:@selector(updateTime:) 
           userInfo:nil 
           repeats:NO];  

[NSTimer scheduledTimerWithTimeInterval:1.0f 
           target:self 
           selector:@selector(updateTime:) 
           userInfo:nil 
           repeats: YES]; 
+0

Gracias Horace. Creo que voy a ir a dar solución vodkhangs sin embargo. – Structurer

Cuestiones relacionadas