NSTimeInterval以秒为单位的秒数= nan

时间:2014-06-07 14:14:54

标签: ios nstimeinterval

NSTimeInterval executionTime = [self.EndDownloadTime timeIntervalSinceDate:self.StartDownloadTime];
NSLog(@"Execution Time: %f", executionTime);

结果始终是" nan"。当我切换EndDownloadTime和StartDownloadTime时,时间是" 0.00000"

StartDownloadTime和EndDownloadTime是NSDate的类型。

如何获得两个日期之间的秒数?

提前谢谢。

2 个答案:

答案 0 :(得分:0)

您的代码看起来正确。试试这个并打印变量值,以了解两个日期是否正确。


NSTimeInterval executionTime = [self.EndDownloadTime timeIntervalSince1970] - [self.StartDownloadTime timeIntervalSince1970];
NSLog(@"Execution Time: %f", executionTime);

答案 1 :(得分:0)

最简单的解决方案是更好的方法,当事情看起来很复杂时检查文档:

NSTimeInterval executionTime = [self.EndDownloadTime timeIntervalSinceDate:self.StartDownloadTime];

当您调试问题并且一切看起来都正确但代码失败时,假设必定是错误的。这里有两个假设(至少):self.EndDownloadTime和self.StartDownloadTime的值。 NSLog它们或使用调试器在您单步执行时检查值。

检查所有内容:

NSLog(@"StartDownloadTime: %@", self.StartDownloadTime);
NSLog(@"StartloadTimeInterval: %f", [self.StartDownloadTime timeIntervalSince1970]);
NSLog(@"EndDownloadTime: %@", self.EndDownloadTime);
NSLog(@"EndDownloadTimeInterval: %f", [self.EndDownloadTime timeIntervalSince1970]);

NSTimeInterval executionTime = [self.EndDownloadTime timeIntervalSince1970] - [self.StartDownloadTime timeIntervalSince1970];
NSLog(@"Execution Time: %f", executionTime);

注意:在Cocoa *属性中,按约定的变量和方法名称以小写字母开头,类名用大写字母开头。这使其他人更容易理解您的代码。