秒表使用nstimer进行计数,并有一个用于存储圈数的表,但是当笔记本表滚动时,手表停止或暂停,并且不会弥补丢失的时间。
这是停止通过使用:
startingTime = [[NSDate date] timeIntervalSince1970];
计算经过的时间。
但是我仍然使用NSTimer每0.1秒触发一次,这意味着即使经过的时间将在最后更新正确滚动仍然停止定时器,并将其与Apple秒表进行比较,这让我想知道是否秒表有一个单独的线程只是为了经过时间计数。有谁知道这是怎么做的?
现在,使用时代以来,Epoch在某种意义上表现良好,但使起动,停止,重新启动秒表
当手表停止时,时间被存储并用于计算手表重新启动时的偏移量,但是当手表重新启动时,似乎有一些延迟被引入并且时间明显上升。
对于根本原因或解决方案的任何想法将不胜感激。
解决方法 bbum的答案提供了更好的方式设计您的应用程序,但如果您希望定时器触发,无论用户是否 *** 纵UI,都需要将其添加到运行循环的跟踪模式。假设你正在为iPhone开发,那个模式是UITrackingRunLoopMode。如果您正在为Mac开发,则有一个类似的命名NSEventTrackingRunLoopMode。
NSRunLoop *runloop = [NSRunLoop currentRunLoop];NSTimer *timer = [NSTimer timerWithTimeInterval:0.1 target:self selector:@selector(myTimerAction:) userInfo:nil repeats:YES];[runloop addTimer:timer forMode:NSRunLoopCommonModes];[runloop addTimer:timer forMode:UITrackingRunLoopMode];总结
以上是内存溢出为你收集整理的可可 – NSTimer在跑垒被阻挡时不起火全部内容,希望文章能够帮你解决可可 – NSTimer在跑垒被阻挡时不起火所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)