jjzjj

swift - MacOS 上最准确的计时器

我有一个应用程序可以从连接到Mac的USB传感器读取环境数据。用户能够配置应用程序对数据进行采样的频率以及应用程序对这些样本进行平均并将平均值记录到文件中的频率。我第一次使用NSTimer但那非常不准确,尤其是当显示器进入休眠状态时。我现在正在使用DispatchSourceTimer,但它仍然大约每21-23秒损失1毫秒,大约每6小时左右损失1秒。我希望每天的时间少于1秒。我有什么想法可以让计时器更准确一点吗?funcsetupTimer()->DispatchSourceTimer{lettimer=DispatchSource.makeTimerSource(flags:.str

ios - UITableViewCell 中的多个计时器(Swift)

我有在不同时刻创建的UITableViewcells,我希望它们中的每一个都有一个独立的计时器,当使用reloadData()这是我目前所做的importUIKitvartimer=Timer()varblinkStatus:Bool!=falsevartime=300classLiveViewCell:UITableViewCell{letstr=String(format:"%02d:%02d",(time/60),(time%100))funcprocessTimer(){iftime>0{time-=1timeRemainingLbl.text=String(time)}els

macos - 在菜单当前快速打开时从 NSTimer 动态更新 NSMenuItem?

这是我的情况,我有一个小应用程序可以跟踪你工作了多长时间,并让你知道什么时候该休息了。我有一个每秒触发一次并更新一些数字(剩余时间)的NSTimer。该应用程序位于状态栏中,我希望剩余时间显示在状态菜单下拉菜单的菜单项中。现在我有更新到NSMenuItem并且它可以工作但是当你点击菜单栏中的图标进入菜单时,时间不会在你查看它时动态更新。如果您改变焦点然后返回菜单,时间会保持正确,但同样,当菜单打开时它不会更新。即使在快速打开菜单的情况下,我仍然可以让MenuItem更新吗?还有其他几个具有objective-c解决方案的线程,但我无法快速调整它们。 最佳答案

swift - NSTimer 不会调用私有(private)函数作为选择器

我正在研究要点:PasteboardWatcher.swift我在其中调用了一个NSTimer对象,如下所示:funcstartPolling(){//setupandstartoftimertimer=NSTimer.scheduledTimerWithTimeInterval(2,target:self,selector:Selector("checkForChangesInPasteboard"),userInfo:nil,repeats:true)}checkForChangesInPasteboard函数的定义是:funccheckForChangesInPasteboard

ios - 当应用程序在后台运行/暂停时继续倒数计时器

我有一个倒数计时器。问题是当用户将应用程序置于后台时,我需要继续倒计时。或者暂停应用程序?我不确定描述此操作的正确术语是什么。换句话说,用户打开应用程序并开始倒计时。用户应该能够使用其他应用程序,但倒计时仍在运行。此外,倒计时应该能够永远运行,直到它结束或用户终止运行应用程序。这是我的计时器的代码:classTimer{vartimer=NSTimer();//thecallbacktobeinvokedeverytimethetimer'ticks'varhandler:(Int)->();//thetotaldurationinsecondsforwhichthetimershou

Swift 实体节拍器系统

我正在尝试构建一个可靠的实体系统,以使用SWIFT在我的应用程序中构建一个节拍器。到目前为止,我已经使用NSTimer构建了一个看似可靠的系统。我现在遇到的唯一问题是当计时器启动时,前2次点击是关闭时间,但随后它会进入一个可靠的时间范围。现在经过我的所有研究,我看到人们提到你应该使用其他不依赖NSTimer的音频工具。或者如果你选择使用NSTimer,那么它应该在它自己的线程上。现在我看到很多人对此感到困惑,包括我自己,我很乐意深入了解节拍器业务并解决这个问题,并与所有苦苦挣扎的人分享。更新因此,在我上次收到反馈后,此时我已经实现并清理了。此时这里是我的代码的结构。它正在播放。但一开始

ios - 如何每 x 秒快速更新今天的小部件

我尝试每x秒更新一次今天的小部件扩展的内容,因为我试图实现类似diashow的东西。因此,我使用共享默认值存储了所有必需的数据。从存储中加载数据工作完美,但扩展的completionHandler:funcwidgetPerformUpdateWithCompletionHandler(completionHandler:((NCUpdateResult)->Void)!){//IdoloadthecontentherecompletionHandler(NCUpdateResult.NewData)}只调用一次。我如何实现一个函数,表示“newData”每x秒可用一次?

parameters - 如何修复 Swift NSTimer 调用其选择器的错误

我收到以下运行时错误:2014-07-1516:49:44.893TransporterGUI[1527:303]-[_TtC14TransporterGUI11AppDelegateprintCountdown]:无法识别的选择器发送到实例0x10040e8a0当我使用以下Swift代码触发计时器时:@IBActionfuncschedule(sender:AnyObject){varstartTime=startDatePicker.dateValue.timeIntervalSinceDate(NSDate())varendTime=endDatePicker.dateValue

ios - Swift 选择器 - 发送到实例的无法识别的选择器

我有一个函数:funcrunRockRotation(rockSprite:SKSpriteNode){startRockRotationAnimation(rockSprite,isRock:true)}当我这样调用它时:runRockRotation(rock)它可以工作,但我似乎无法将它放入NSTimer选择器中。vartimer=NSTimer.scheduledTimerWithTimeInterval(1.0,target:self,selector:"runRockRotation:",userInfo:rock,repeats:false)看了很多论坛,试过这个:var

ios - 天/小时/分钟/秒的快速倒计时标签

我正在创建一个倒计时计时器,它倒计时到UIDatePicker中设置的NSDate。我有一个标签可以显示我们倒计时的日期,而且效果很好。我还想添加的是当天剩余天数和剩余小时/分钟/秒数的标签(即永远不会超过23/59/59)这是我所做的在这一刻,但它显然显示了整个倒计时的值。希望有人能帮我在这里找出正确的逻辑。letsecondsLeft=sender.date.timeIntervalSinceDate(NSDate())hoursLabel.text=String(secondsLeft%3600)minutesLabel.text=String((secondsLeft/60)%