iOS开发:计算两个事件之间经过的秒数的简单方法是什么?

时间:2011-01-11 06:15:13

标签: iphone ipad ios

我需要计算iPhone上两个事件之间经过的秒数。为此,我需要存储第一个事件发生的时间,并检查第二个事件发生的时间,以查看是否超过30秒。

我即将开始尝试使用NSDate类来完成此操作,但我想知道是否有一种更简单的方法可以在不使用对象的情况下执行此操作,因为我更倾向于存储简单的内部值而不是对象。

感谢您的智慧!

3 个答案:

答案 0 :(得分:7)

如果您真的想避免存储对象,可以执行以下操作:

double startTime = [[NSDate date] timeIntervalSince1970];

//Run your other code

double endTime = [[NSDate date] timeIntervalSince1970];

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

答案 1 :(得分:0)

你看过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自然是传入事件

答案 2 :(得分:0)

你可以使用 [NSDate dateWithTimeIntervalSinceReferenceDate:anotherDate]; 或使用initWithTimeIntervalSinceReferenceDate:方法