dateS 和 date 总是不同吗?
// 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()
or CACurrentMediaTime()
。它们总是在程序运行期间增加。它们测量自设备上次启动以来的时间,因此它们仅在下次重新启动之前是唯一的。如果您需要始终增加的东西,那么通过跟踪偏移量来构建它非常容易。mach_absolute_time()
跟踪 CPU 滴答声,因此我不相信同一线程上对它的两次调用可以返回相同的值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)