首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSTimeInterval返回随机值

NSTimeInterval返回随机值
EN

Stack Overflow用户
提问于 2011-01-19 19:37:07
回答 1查看 1.8K关注 0票数 1

我正在为我正在开发的一个应用程序编写一个缓存系统。它在核心数据中存储了一个密钥(NSString)和一个最后请求的时间戳(NSDate),我在查看它是否过期时遇到了麻烦(它被设置为在300秒后过期)。

代码语言:javascript
复制
NSTimeInterval interval = [lastRequested timeIntervalSinceNow];
NSLog(@"Interval: %d", interval);
// reload every 5 minutes
if (interval > 300) {
  NSLog(@"Last Requested: %d (older than 5 minutes)", interval);
  return YES;
} else {
  NSLog(@"Last Requested: %d (within 5 minutes)", interval);
  return NO;
}

我已经检查过lastRequested没有改变--这很好。但间隔产生了一个看似随机的数字:

代码语言:javascript
复制
2011-01-19 11:31:03.770 App[2998:207] Interval: -830996480
2011-01-19 11:31:03.770 App[2998:207] Last Requested: -830996480 (within 5 minutes)
2011-01-19 11:30:57.634 App[2994:207] Interval: 1494482944
2011-01-19 11:30:57.634 App[2994:207] Last Requested: 1494482944 (within 5 minutes)
2011-01-19 11:30:51.219 App[2991:207] Interval: -1951399936
2011-01-19 11:30:51.219 App[2991:207] Last Requested: -1951399936 (within 5 minutes)

奇怪的是,当你检查这个值是否大于300时,在应用程序的中间运行时-即使它是1494482944,它仍然认为它小于300。

有什么想法吗?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-19 19:42:17

当您记录时间间隔时,您将其记录为整数(%d),但时间间隔是双精度的(%f)。替换NSLog(...)中的这些实例,您应该会看到正确的值。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4734762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档