【问题标题】:How to convert NSTimeInterval to seconds (for backgroundTimeRemaining)如何将 NSTimeInterval 转换为秒(用于 backgroundTimeRemaining)
【发布时间】:2012-12-17 06:37:23
【问题描述】:

我正在运行测试,以测量后台任务剩余时间的剩余时间。我已经阅读了几个示例,看到每个人都这样做:

UIApplication *app = [UIApplication sharedApplication];
double *bgTime = app.backgroundTimeRemaining;

NSLog(@"Background Time Remaining: %f", bgTime);  

但是我得到了很长的值,例如 1797693134862315708145274237317043567980705675258449965989...

我知道 [[UIApplication sharedApplication] backgroundTimeRemaining] 是 NSTimeInterval,但是有没有办法将它转换为 x 秒?

我也试过this,但它不起作用。

任何帮助将不胜感激。
谢谢。

【问题讨论】:

  • NSTimeInterval 以秒为单位指定。你确定你的计算正确吗?
  • 感谢您的回复!我以为 NSTimeInterval 是以秒为单位指定的...我应该如何计算并将其转换为秒以显示 backgroundTimeRemaining?

标签: ios double nstimeinterval


【解决方案1】:

如果应用程序在前台,根据文档here,时间会很长。

【讨论】:

  • 再次感谢 Paramasivan Samuttiram!我正在后台模式下通过使用主页按钮退出应用程序来测试它,但它们仍然很大并且无法转换为秒......有趣的是,这个数字看起来永远不会改变,就好像它们在前台一样。 .. 这是否意味着任何相关?
  • 嗨。目前,我正在一个由 NSTimer 每 x 秒调用一次的方法中编写它。 NSTimer 方法在 beginBackgroundTaskWithExpirationHandler 被调用之后被调用。我认为这个 [UIApplication sharedApplication].backgroundTimeRemaining 可以从任何地方检索...
  • 经过一番研究,问题似乎是我的 backgroundTimeRemaining 值是前景,看起来我在后台没有正确显示它......在我的简化测试中,它正确显示了剩余时间NSLog(@"%0.f");而且我仍然无法弄清楚为什么我的 backgroundTimeRemaining 没有减少...无论如何,再次感谢您的回答,这使我找到了解决这个问题的正确方向!
  • 当然@FaustV,很高兴为您提供帮助。
【解决方案2】:

因为NSTimeIntervalfloatdouble,但不是指针。 double *bgTime 应该是 double bgTime

【讨论】:

  • 啊,我的错。在 XCode 中,它是按应有的方式编写的。不过,感谢您指出!
猜你喜欢
  • 2014-10-27
  • 2013-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-29
  • 1970-01-01
  • 2011-12-05
相关资源
最近更新 更多