iOS比较两个相同的NSDates不会返回NSOrderedSame

use*_*862 3 nsdate ios

作为标题,我尝试了以下简单的代码:

NSDate *date1 = [NSDate date];
NSDate *date2 = [NSDate date];
if([date1 compare:date2] == NSOrderedSame)
 NSLog(@"two time same");
else
 NSLog(@"two time not same");
Run Code Online (Sandbox Code Playgroud)

结果是:

two time not same
Run Code Online (Sandbox Code Playgroud)

我不明白,有人可以给我一些提示吗?谢谢.

Ret*_*tro 9

这是不一样的,因为对象的创建有一点时间差异,只是尝试打印那里的价值NSTimeInterVal以便更好地了解.

例:

NSDate *date1 = [NSDate date];
NSDate *date2 = [NSDate date];

NSLog(@"date1 : %f", [date1 timeIntervalSince1970]);
NSLog(@"date2 : %f", [date2 timeIntervalSince1970]);
Run Code Online (Sandbox Code Playgroud)

输出:

date1 : 1404466511.638555
date2 : 1404466511.638558
Run Code Online (Sandbox Code Playgroud)

你也可以看到差异使用方法

- (NSTimeInterval)timeIntervalSinceDate:(NSDate *)anotherDate
Run Code Online (Sandbox Code Playgroud)