NSTimeInterval executionTime = [self.EndDownloadTime timeIntervalSinceDate:self.StartDownloadTime];
NSLog(@"Execution Time: %f", executionTime);
结果始终是" nan"。当我切换EndDownloadTime和StartDownloadTime时,时间是" 0.00000"
StartDownloadTime和EndDownloadTime是NSDate的类型。
如何获得两个日期之间的秒数?
提前谢谢。
答案 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 *属性中,按约定的变量和方法名称以小写字母开头,类名用大写字母开头。这使其他人更容易理解您的代码。