Objective c 目标C,正确计算NSTIME间隔?
我试图以毫秒为单位计算在我的应用程序中完成操作的时间。虽然我的应用程序似乎在NSLog函数附近崩溃,但我已经阅读了大部分并查看了示例。这里提到的所有答案似乎都是专门针对iOS的,我正试图通过OSX实现这一点。任何帮助或建议都将不胜感激-谢谢Objective c 目标C,正确计算NSTIME间隔?,objective-c,macos,nstimer,nstimeinterval,Objective C,Macos,Nstimer,Nstimeinterval,我试图以毫秒为单位计算在我的应用程序中完成操作的时间。虽然我的应用程序似乎在NSLog函数附近崩溃,但我已经阅读了大部分并查看了示例。这里提到的所有答案似乎都是专门针对iOS的,我正试图通过OSX实现这一点。任何帮助或建议都将不胜感激-谢谢 - (void)someMethod { NSTimeInterval startTime = [[NSDate date] timeIntervalSinceReferenceDate]; // Do something else
- (void)someMethod {
NSTimeInterval startTime = [[NSDate date] timeIntervalSinceReferenceDate];
// Do something else
// Now see how much time went by
NSTimeInterval endTime = [[NSDate date] timeIntervalSinceReferenceDate];
double elapsedTime = startTime - endTime;
NSLog(@"time: %@", elapsedTime);
}
您的问题是,您正在尝试打印带有%@的对象,但时间是双精度的。相反,您应该将最后一行更改为
NSLog(@"time: %f", elapsedTime);
另外请注意,startTime-endTime会给您一个负时间,因此您可能应该切换顺序以获得正确的持续时间。您的问题是,您正试图使用%@打印对象,但时间是双精度的。相反,您应该将最后一行更改为
NSLog(@"time: %f", elapsedTime);
另外请注意,startTime-endTime会给您一个负时间,因此您可能需要切换顺序以获得正确的持续时间。另一种方法是获取开始日期。然后,要查找经过的时间,请调用[startDate TimeIntervalncesInnow]。另一种方法是获取开始日期。然后,要查找经过的时间,请致电[startDate TimeIntervalencesInnow]。谢谢-我想这就是问题所在;有没有一种好方法可以格式化输出,使其更具可读性?它现在看起来像:time:-0.039568,所以我更喜欢time:3ms。你可以像@time:%.2f ms,elapsedTime*1000.0。谢谢-我想这就是问题所在;有没有一种好方法可以格式化输出,使其更具可读性?它现在看起来像:time:-0.039568,所以我希望它更像time:3ms。你可以像@time:%.2f ms,elapsedTime*1000.0.Hi这样,谢谢你的替代方法;这样做有什么好处或区别吗?代码更少,我只是觉得它看起来更干净,语义上更能代表你正在做的事情:你想要一个时刻和另一个时刻之间的时间流逝,你真的不想担心参考日期。嗨,谢谢你的替代方法;这样做有什么好处或区别吗?代码更少,我只是觉得它看起来更干净,语义上更能代表你在做什么:你想要一个时刻和另一个时刻之间经过的时间,你真的不想担心参考日期。