jjzjj

Swift nstimer 访问其他类的函数

作为NStimer的选择器在不同的类中运行该函数时遇到问题。classVariClass{funcupdateUILoop(){print("updatingUI")}}在我的应用委托(delegate)中letvalues=VariClass()在我的appdelegate中。lettimer=NSTimer(fireDate:NSDate(),interval:5,target:self,selector:#selector(values.updateUILoop),userInfo:nil,repeats:true)如果我手动运行该函数,它会完美运行。getvalues.upda

xcode - NSTimer timeInterval 参数不允许变量

当我使用timer=NSTimer.scheduledTimerWithTimeInterval(0.75,target:self,selector:Selector("drawInTime"),userInfo:nil,repeats:false)它工作正常,但如果我想为timeInterval参数使用一个变量(而不是0.75)varwaitTime=CGFloat(numberOMiliseconds)/1000.0timer=NSTimer.scheduledTimerWithTimeInterval(timeInterval:waitTime,target:self,selec

ios - 如何让 NSTimer 显示 Hrs : Min : Sec

我正在尝试让计时器显示以下内容-小时:分钟:秒:毫秒。我找到了一个介绍如何操作的网站教程,但没有显示时间。这是网站:Simple-stopwatch这是它说要做的代码:vartimer=NSTimer()varstartTime=NSTimeInterval()funcupdateTime(){varcurrentTime=NSDate.timeIntervalSinceReferenceDate()varelapsedTime:NSTimeInterval=currentTime-startTimeletminutes=UInt8(elapsedTime/60.0)elapsedTi

ios - 实时使用 NSTimer - Swift

我正在尝试弄清楚如何使用NSTimer,在我的例子中,我需要使用它实时更新每一秒,就像时钟一样。我已经阅读了文档,但是我不确定如何使用它。我在这里看到其他帖子谈论设置计时器而不是将计时器设置为实时并从那里实时计数。问题:我该怎么做? 最佳答案 根据文档,NSTimer可能不准确,它会在系统足够空闲时触发。如果确实依赖于精确的时间值,您可以做什么:创建一个计时器并让它每秒触发一次。在fired方法中询问确切的系统时间并用它进行处理。这样,无论计时器事件的准确性如何,您都可以获得准确的时间值。一些示例代码:它存储了定时器启动的系统时间。

ios - 继续运行 NSTimer 切换背景和前景

我正在尝试创建一个由用户在前台手动启动的NSTimer,并且正如预期的那样完美运行:timer=NSTimer.scheduledTimerWithTimeInterval(1,target:self,selector:Selector("updateCounter"),userInfo:nil,repeats:true)其中updateCounter()只是更新UI中的UILabel。现在我想要实现的是在用户离开应用程序时也让它运行。我用谷歌搜索了一些东西并找到了这段代码(我用Swift翻译了它):funcapplicationDidEnterBackground(applicati

swift - 如何制作重复特定次数的 NSTimer?

我想使用NSTimer每.5秒调用一个函数50次,但我唯一的选择是让计时器无限期运行或创建不重复的计时器。我可以使用计时器来完成我想做的事吗,还是应该尝试使用其他东西? 最佳答案 您只需要使用类变量跟踪函数调用的次数。一旦达到函数调用的最大次数,就停止设置下一个计时器。以iOSUIViewController类为例:classViewController:UIViewController{vartimer:NSTimer?=nil;vartimes:Int=0;overridefuncviewDidLoad(){super.view

ios - Swift NSTimer 使应用程序崩溃

调用时,应用程序崩溃。funchandlers(){vartimer=NSTimer.scheduledTimerWithTimeInterval(0.5,target:self,selector:"timeListener",userInfo:data,repeats:true)}functimeListener(timer:NSTimer){vardata:AnyObject?=timer.userInfoprintln(data);}尝试了一些东西,尝试了另一个答案(PassingparameterstoamethodcalledbyNSTimerinSwift),但每个代码都使

swift - 使 NSTimer 无效无效

我有一个设置为150秒的NSTimer,当它下降到0时,它应该停止计数并结束我正在创建的游戏。但是,当我调用invalidate()时,它会继续运行。我也有它,所以当计时器无效但没有运气时它应该打印“计时器停止”。还有另一种方法吗?这是我的代码:importSpriteKitvarcountDown:NSTimer()classGameScene:SKScene{overridefuncdidMoveToView(view:SKView)countDown=NSTimer.scheduledTimerWithTimeInterval(1.0,target:self,selector:"

swift - NSTimer 在此函数中无效时不会停止

我正在尝试使用NTTimer,但它不起作用。从这里开始:timer=NSTimer.scheduledTimerWithTimeInterval(0.003,target:self,selector:"openFrameAnimation",userInfo:nil,repeats:true)它触发这个函数:funcopenFrameAnimation(){Swift.print("AnimationGoes...",NSDate().timeIntervalSince1970)self.frame=NSRect(x:self.frame.origin.x,y:self.frame.o

ios - 无法将 (Timer!) -> Void 转换为 ((CFRunLoopTimer?) ->Void)! - 将 NSTimer 扩展转换为 Swift 3

我正在尝试将我在我的项目中使用的Pod转换为Swift3。我没有写它,但原作者没有更新它所以我fork了我自己尝试做的任何东西。但是……我在尝试将NSTimer的扩展转换为Swift3时遇到此错误:无法将类型“(Timer!)->Void”的值转换为预期的参数类型“((CFRunLoopTimer?)->Void)!似乎Swift3处理程序类型(Timer!)->Void与老派的CFRunLoop样式处理程序不兼容,但我不确定如何在保持与iOS9的兼容性的同时进行转换。我在下面粘贴由Xcode转换后的代码。您可以在https://github.com/entotsu/TKSubmitT