-[NSDate timeIntervalSinceDate:] 在 GCC 4.2 上返回非常小的数字,但在 iOS4.3 模拟器上的 LLVM-GCC 4.2 上按预期工作
在 iOS 4.3 模拟器上,以下代码在 GCC 4.2 上返回一个非常小的数字:1e-700
,但在 LLVM-GCC 4.2 上按预期工作。有什么想法吗?
NSDate *selectedDate = self.datepicker.date; // guaranteed to be before now
NSTimeInterval interval = [nowDate timeIntervalSinceDate:selectedDate];
这些值随着每次运行而变化,但这里是输出 selectedDate 的示例集
:1981-06-02 16:27:34 +0000
nowDate:2011-08-03 05:18: 36 +0000
间隔:5.489011535689859e-277
运行GDB 中的 [nowDate timeIntervalSinceDate:selectedDate]
:952001462.97236204
(这是我的预期值)
On iOS 4.3 Simulator, the following code returns a very small number: 1e-700
on GCC 4.2, but works as expected on LLVM-GCC 4.2. Any ideas?
NSDate *selectedDate = self.datepicker.date; // guaranteed to be before now
NSTimeInterval interval = [nowDate timeIntervalSinceDate:selectedDate];
these values change with each run, but here is an example set of output
selectedDate: 1981-06-02 16:27:34 +0000
nowDate: 2011-08-03 05:18:36 +0000
interval: 5.489011535689859e-277
running [nowDate timeIntervalSinceDate:selectedDate]
in GDB: 952001462.97236204
(this is my expected value)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这可能是 GCC 的一个错误。我认为你应该填写一份错误报告,看看苹果怎么说。
This might be a bug with GCC. I think you should fill a bug report and see what Apple has to say.
意外值是溢出。
The unexpected value is an overflow.