在Objective-C中我的计时器有毫秒

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Objective-C中我的计时器有毫秒相关的知识,希望对你有一定的参考价值。

我正在使用youtube教程做秒表。问题是我在计时器中需要毫秒,但教程只显示如何获得秒和分钟。我想显示毫秒显示的分钟和秒,但我不知道该怎么做。

如何使用此代码获取毫秒?

@implementation ViewController {

    bool start;
    NSTimeInterval time;
}

- (void)viewDidLoad {
    [super viewDidLoad];
    self.display.text = @"0:00";
    start = false;
}

- (void) update {

    if ( start == false ) {
        return;
    }
    NSTimeInterval currentTime = [NSDate timeIntervalSinceReferenceDate];
    NSTimeInterval elapsedTime = currentTime - time;

    int minutes = (int) (elapsedTime / 60.0);

    int seconds = (int) (elapsedTime = elapsedTime - (minutes * 60));

    self.display.text = [NSString stringWithFormat:@"%u:%02u", minutes, seconds];

    [self performSelector:@selector(update) withObject:self afterDelay:0.1];
}
答案

根据文档,“NSTimeInterval总是以秒为单位指定;它在10,000年的范围内产生亚毫秒精度。”因此,您需要做的就是从elapsedTime变量中提取毫秒,然后再次格式化文本,使其包含毫秒数。它可能看起来像这样:

NSInteger time = (NSInteger)elapsedTime;
NSInteger milliseconds = (NSInteger)((elapsedTime % 1) * 1000);
NSInteger seconds = time % 60;
NSInteger minutes = (time / 60) % 60;
//if you wanted hours, you could do that as well
//NSInteger hours = (time / 3600);
self.display.text = [NSString stringWithFormat: "%ld:%ld.%ld", (long)minutes, (long)seconds, (long)milliseconds];

以上是关于在Objective-C中我的计时器有毫秒的主要内容,如果未能解决你的问题,请参考以下文章

我可以使用 Excel for Mac 将代码计时到毫秒吗

c++代码执行定时器返回0,需要以毫秒为单位输出

Js倒计时代码精确到毫秒。

Sleep() 方法后的代码片段没有被执行

如何将这个 Objective-C 代码片段写入 Swift?

Objective-C:完成一个间隔计时器