Разработка под iOS. Какой простой способ рассчитать количество секунд, прошедших между двумя событиями? - PullRequest
5 голосов
/ 11 января 2011

Мне нужно рассчитать количество секунд, прошедших между двумя событиями на iPhone.Для этого мне нужно сохранить время, когда произошло первое событие, и сравнить его со временем, когда произошло второе событие, чтобы узнать, прошло ли больше 30 секунд.

Я собираюсь начать пытаться сделать это с помощью класса NSDate, но мне было интересно, есть ли более простой способ сделать это без использования объектов, так как я бы предпочел хранить простые, внутренние значения вместо объектов.

Спасибо за мудрость!

Ответы [ 3 ]

7 голосов
/ 11 января 2011

Если вы действительно хотите избежать хранения объектов, вы можете сделать что-то вроде:

double startTime = [[NSDate date] timeIntervalSince1970];

//Run your other code

double endTime = [[NSDate date] timeIntervalSince1970];

if (endTime - startTime > 30) {
  //30 seconds have passed
}
0 голосов
/ 11 января 2011

Вы можете использовать [NSDate dateWithTimeIntervalSinceReferenceDate:anotherDate]; или используйте initWithTimeIntervalSinceReferenceDate: метод

0 голосов
/ 11 января 2011

видели ли вы в UIEvent timestamp?

пример:

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

, где event1 и event2 - естественно входящие события

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...