gpt4 book ai didi

objective-c - 两个互相关注的 [NSDate date] 总是会返回不同的时间吗?

转载 作者:搜寻专家 更新时间:2023-10-30 20:01:04 25 4
gpt4 key购买 nike

dateA 和 dateB 总是不同的吗?

// Two [NSDate date] following each other
NSDate *dateA = [NSDate date]; // Line X
NSDate *dateB = [NSDate date]; // Line X+1

也就是说,下面这行会一直返回NO吗?

[dateA isEqualToDate:dateB]

(“始终”意味着像一个非常快的处理器不会如此快地执行这两个命令,以至于 dateA 和 dateB 将以“亚秒级”的精度同时分配)。

我想为某些内部标识(与数据库无关)设置“唯一”时间戳。

最佳答案

没有保证 dateB 会在 dateA 之后。 NSDate 基于系统时钟,可以根据 NTP 信息向前或向后移动。两个 NSDate 时间发生碰撞会让人非常惊讶,但我们不能保证它不会发生。

如果您需要更好的东西,我建议您使用 mach_absolute_time()CACurrentMediaTime()。它们总是在程序运行期间增加。它们是自设备上次启动以来的测量时间,因此它们仅在下一次重新启动之前是唯一的。如果您需要始终增加的东西,通过跟踪偏移量可以很容易地构建它。 mach_absolute_time() 跟踪 CPU 节拍,所以我不相信在同一个线程上对它的两次调用可以返回相同的值。

关于objective-c - 两个互相关注的 [NSDate date] 总是会返回不同的时间吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7854932/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com