在iOS中,为什么[[NSDate date] timeIntervalSince1970]在内部是双倍的?它应该很长很长

时间:2015-06-19 09:52:14

标签: ios nsdate nstimeinterval

在iOS SDK中,我发现[[NSDate date]timeIntervalSince1970]返回NSTimeInterval,内部为双倍。理想情况下不应该长久吗?

2 个答案:

答案 0 :(得分:0)

来自apple documentation

NSTimeInterval is always specified in seconds; it yields sub-millisecond precision over a range of 10,000 years.

NSTimeInterval表示时间维度值,该值并非始终为十进制数。所以NSTimeInterval也必须是小数。

在64位系统中 CGFloat long long has the same size - 8个字节。

答案 1 :(得分:0)

选择NSTimeInterval的表示是精确性和易用性之间的权衡。

挑选long long将需要使用除秒之外的时间单位 - 例如,毫秒或微秒,然后提供用于从间隔中提取时间单位的函数或宏。

可可设计师追求易用性,要求始终在几秒钟内指定NSTimeInterval。这使您在10,000年的范围内具有亚毫秒精度,这对于大多数应用来说已经足够了。