NSTime 创建一个时间间隔

发布于 2024-10-17 09:58:09 字数 847 浏览 1 评论 0原文

我的应用程序的方法 updateLabel2 中有以下代码:

timeLeft = [[NSDate date] timeIntervalSinceDate:[[NSUserDefaults standardUserDefaults] objectForKey:@"lastDate"]];

[[self timer] setText:[NSString stringWithFormat:@"Time Remaining: %f", timeLeft]]; //Set the label text

请注意,计时器是一个标签。

更早之前,执行以下代码:

    [[NSUserDefaults standardUserDefaults] setObject:[NSDate date] forKey:@"lastDate"];


self.repeatTimer = [NSTimer scheduledTimerWithTimeInterval:1
                                               target:self
                                             selector:@selector(updateLabel2) 
                                             userInfo:nil
                                              repeats:YES];

我的问题是 timeLeft 被设置为随机整数,这绝对不是 timeIntervals 应该设置的值,并且彼此之间也不在一秒之内。

I have the following code in my application in the method updateLabel2:

timeLeft = [[NSDate date] timeIntervalSinceDate:[[NSUserDefaults standardUserDefaults] objectForKey:@"lastDate"]];

[[self timer] setText:[NSString stringWithFormat:@"Time Remaining: %f", timeLeft]]; //Set the label text

Note that timer is a label.

and earlier, the following code is executed:

    [[NSUserDefaults standardUserDefaults] setObject:[NSDate date] forKey:@"lastDate"];


self.repeatTimer = [NSTimer scheduledTimerWithTimeInterval:1
                                               target:self
                                             selector:@selector(updateLabel2) 
                                             userInfo:nil
                                              repeats:YES];

My problem is that timeLeft is being set to random integers which are definetly not what the timeIntervals should be, and are not within one second of each other either.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

小耗子 2024-10-24 09:58:09

您的格式字符串错误:
由于 NSTimeInterval 是浮点类型,因此您需要

  • 使用适当的占位符 %f 而不是 %d
  • 强制转换 timeLeft<调用 -[NSString stringWithFormat:] 时将 /code> 转换为 int。

我认为这就是贾斯汀所指的。

除了

考虑你在那里做什么:
这不应该是“时间已过去”吗?

Your format-string is wrong:
Because NSTimeInterval is a floating point type, you need to either

  • use the appropriate placeholder %f instead of %d or
  • cast timeLeft to an int while calling -[NSString stringWithFormat:].

Which — I think — is, what Justin referred to.

Aside

Considering what you're doing there:
Shouldn't that be "Time elapsed"?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文