2011-01-11 9 views
5

Necesito calcular el número de segundos que han pasado entre dos eventos en el iPhone. Para hacerlo, debo almacenar la hora en que ocurrió el primer evento y verificarlo en función de la hora en que ocurrió el segundo evento para ver si han transcurrido más de 30 segundos.Desarrollo iOS: ¿Cuál es una forma simple de calcular el número de segundos que han pasado entre dos eventos?

Estoy a punto de comenzar a tratar de lograr esto usando la clase NSDate, pero me preguntaba si hay una forma más sencilla de hacerlo sin usar objetos, ya que preferiría almacenar valores intrínsecos simples en lugar de objetos.

¡Gracias por su sabiduría!

Respuesta

7

Si realmente quiere evitar el almacenamiento de objetos , puede hacer algo como:

double startTime = [[NSDate date] timeIntervalSince1970]; 

//Run your other code 

double endTime = [[NSDate date] timeIntervalSince1970]; 

if (endTime - startTime > 30) { 
    //30 seconds have passed 
} 
+0

Está utilizando dos objetos allí mismo. . . – jsedano

0

¿Has visto UIEvent's timestamp?

ejemplo:

double event1Timestamp, event2Timestamp; ///< ivars in your class? 

{ // some function/method body 
    event1Timestamp = event1.timestamp; 
} 

{ // some other function/method body 
    /*** later that day ***/ 
    event2Timestamp = event2.timestamp; 
    if (30 <= (event2Timestamp-event1Timestamp)) { 
    printf("ok, it's been 30 seconds"); 
    } 
} 

donde event1 y event2 son, naturalmente, los eventos entrantes

0

Usted puede utilizar [NSDate dateWithTimeIntervalSinceReferenceDate:anotherDate]; o utilizar el initWithTimeIntervalSinceReferenceDate: Método

Cuestiones relacionadas