【问题标题】:Measuring time Interval Since Now从现在开始测量时间间隔
【发布时间】:2011-05-26 20:57:04
【问题描述】:

任何人都知道或可以提供一些与“timeIntervalSinceNow”方法相关的示例代码......

我需要类似... time2(当应用程序进入前台时)-time1(当应用程序进入后台时)= time3(时间差)...这样我就可以使用这个数字(以秒为单位)来计算应用程序在后台运行时我损失的时间!!

我正在尝试创建日期对象、接收对象并在标签中显示/使用......

【问题讨论】:

    标签: iphone sdk xcode4 nsdate nstimeinterval


    【解决方案1】:

    实际上,要回答您最初的问题,myles,您可以使用timeIntervalSinceNow。 在下面的语句中,inputDate 已初始化为 NSDate 并设置为某个日期(您可以尝试 [NSDate *inputDate = [NSDate date]; 将日期设置为当前日期和时间。

    NSTimeInterval timeToAlert =[inputDate timeIntervalSinceNow];
    

    下一行是将NSTimeInterval 放入字符串的方法。

    NSMutableString *timeinterval = [NSMutableString string];
    [timeinterval appendFormat:@"%f",timeToAlert];
    

    最后,应用程序委托类通常是可以编写代码来处理后台进出的地方。祝你好运!

    【讨论】:

      【解决方案2】:

      timeIntervalSinceNow 告诉您NSDate 与当前时间的偏移量。你要timeIntervalSinceDate::

      NSDate *appEnteredForeground = ...;
      NSDate *appEnteredBackground = ...;
      
      NSTimeInterval difference = [appEnteredBackground timeIntervalSinceDate: appEnteredForeground];
      

      【讨论】:

      • 它一直说“未使用的变量'差异'”我不知道如何从差异中获取值并将其放入标签中。顺便说一句,我应该在代表那里这样做吗?非常感谢老兄的帮助!!
      • 听起来您可能需要退后一步,学习 C 和 Objective-C 的基础知识,然后再一头扎进 UI 设计。 :)
      【解决方案3】:

      您可以使用timeIntervalSinceDate: 方法计算两个日期之间的差异:

      //When app enters background:
      self.backgroundDate = [NSDate date]; //this should be a property 
      //...
      //When the app comes back to the foreground:
      NSTimeInterval timeSpentInBackground = [[NSDate date] timeIntervalSinceDate:self.backgroundDate];
      

      NSTimeInterval 只是 double 的 typedef,以秒为单位。 [NSDate date] 用当前日期和时间实例化一个 NSDate 对象。

      【讨论】:

      猜你喜欢
      • 2020-04-28
      • 1970-01-01
      • 2018-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-10
      • 2011-07-04
      相关资源
      最近更新 更多