2011-01-11 12 views
5

Potrzebuję obliczyć liczbę sekund, które upłynęły między dwoma zdarzeniami na iPhone. Aby to zrobić, muszę zapisać czas wystąpienia pierwszego zdarzenia i sprawdzić, czy wystąpiło drugie zdarzenie, aby sprawdzić, czy minęło więcej niż 30 sekund.Rozwój iOS: Jaki jest prosty sposób obliczenia liczby sekund, które upłynęły między dwoma zdarzeniami?

Zaraz zacznę próbować osiągnąć to za pomocą klasy NSDate, ale zastanawiałem się, czy istnieje prostszy sposób, aby to zrobić bez użycia obiektów, ponieważ wolałbym przechowywać proste, wewnętrzne wartości zamiast obiektów.

Dzięki za mądrość!

Odpowiedz

7

Jeśli naprawdę chcesz, aby uniknąć przechowywania obiektów możesz zrobić coś takiego:

double startTime = [[NSDate date] timeIntervalSince1970]; 

//Run your other code 

double endTime = [[NSDate date] timeIntervalSince1970]; 

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

Używasz tutaj dwóch obiektów. . . – jsedano

0

Czy widziałeś UIEvent's timestamp?

przykład:

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"); 
    } 
} 

gdzie event1 i event2 są naturalnie przychodzące wydarzenia

0

Można użyć [NSDate dateWithTimeIntervalSinceReferenceDate:anotherDate]; lub użyj initWithTimeIntervalSinceReferenceDate: Metoda

Powiązane problemy