- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
这会根据需要每 60 秒重复调用我的选择器:
autoDeleteTimer = [NSTimer scheduledTimerWithTimeInterval:60 target:[SimpleDB class] selector:@selector(autoDelete:) userInfo:nil repeats:YES];
下一行根本没有调用它。不是最初也不是 60 秒后:
autoDeleteTimer = [[NSTimer alloc] initWithFireDate: [NSDate dateWithTimeIntervalSinceNow:1] interval:60 target:[SimpleDB class] selector:@selector(autoDelete:) userInfo:nil repeats:YES];
谁能解释一下为什么?谢谢。
最佳答案
您需要将第二个计时器添加到主循环中:
[[NSRunLoop mainRunLoop] addTimer: autoDeleteTimer forMode:NSDefaultRunLoopMode];
来自方法的文档:
- (id)initWithFireDate:(NSDate *)date interval:(NSTimeInterval)seconds target:(id)target selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)repeats
Return Value: The receiver, initialized such that, when added to a run loop, it will fire at date and then, if repeats is YES, every seconds after that.
You must add the new timer to a run loop, using addTimer:forMode:. Upon firing, the timer sends the message aSelector to target. (If the timer is configured to repeat, there is no need to subsequently re-add the timer to the run loop.)
关于objective-c - NSTimer - 为什么 scheduledTimerWithTimeInterval 工作,而 initWithFireDate 不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19405069/
我有两个单独的计时器,用于在 0.25 秒时记录数据,另一个用于在 1 秒时记录位置详细信息,如下所示 self.hardBrakingTimer = [NSTimer scheduledTimer
我有一个奇怪的计时器问题。计时器在应用程序中更新良好。我正在展示代码。 //开始计时 #pragma mark- Timer - (void)startTimer { timer = [NST
我想使用 scheduledTimerWithTimeInterval 在一定时间内执行周期性任务,比如一小时。但是我如何在我的代码上实现。这是我的代码: timer = [NSTimer sched
我想在未来安排一个函数调用。我正在使用 Swift。 我想回调一个私有(private)方法并返回一个 Promise(来自 PromiseKit) 我见过的所有例子都用到了 NSTimer.sche
我想知道是否有一种更流畅、更轻便的方法来制作带循环的动画。 [NSTimer scheduledTimerWithTimeInterval:[NSTimeInterval] target:[targe
我为 Alert 创建了一个类级别的方法: @interface TestAlert @end + (void)showErrorAlert:(NSTimer *)message { .......
我通过 Web 服务将用户位置发送到服务器,在响应中我得到发送下一个位置的时间间隔。我正在使用以下调用使用定时器发送位置,但是当我得到不同的值时,定时器仍然使用旧值。我还尝试使计时器无效以设置新值,但
我想在后台运行一个计时器。所以我创建了一个单例。 问题是在设置的 5.0 秒后,它没有调用函数 timeEnded()。 Xcode建议在函数前面添加@Objc(像这样:@Objc func time
我检查了关于这个主题的现有帖子并用谷歌搜索了它,但我无法找出我的错误或使它对我有用。我在 ChessPlayer 类中有一个函数 iterativeDeepening()。说 15 秒后,我想停止函数
我有一个函数需要每隔 x 秒调用一次。开始时 x = 5 但每次调用此函数时 x 都需要递减一定数量。如果 x 不变,我知道该怎么做: override func didMoveToView(view
我一直在制作秒表。 启动、停止和暂停操作效果很好。 但是,当我点击两次开始操作时 time = NSTimer.scheduledTimerWithTimeInterval(1, target: se
我正在开发一款游戏,我想创建一个暂停菜单。这是我的代码: self.view?.paused = true 但是 NSTimer.scheduledTimerWithTimeInterval 仍在运行
如何停止我的计时器运行?不像暂停,而是停止。 import UIKit class LastManStandingViewController: UIViewController { @IBOu
在那段代码中,我有两个 NSLog 都表示 dict 的保留计数为 1。由于如果数组中有很多对象,计时器可能会在很长一段时间内触发,我可以保留给用户信息的字典吗?因为我猜它是自动释放的,而schedu
我在 A 类中,我想调用 B 类中的方法,我该怎么做。 NSTimer* timer=[NSTimer scheduledTimerWithTimeInterval:4 target:[A class
我需要每分钟运行一次的函数。所以我决定使用 NSTimer.scheduledTimerWithTimeInterval 函数 这是我的代码 override func viewWillAppear(
我创建了一个简单的 WatchApp 节拍器。我将 NSTimer 与 .scheduledTimerWithTimeInterval 一起使用,但出现错误 Extra Argument 'selec
我有以下代码行: changeColour = NSTimer.scheduledTimerWithTimeInterval(TIMES, target: self, selector: "chang
我目前是第一次学习 Swift,并且有些头疼,因为最新版本显然刚刚发布。 许多教程都在教学生如何使用 NSTimer.scheduledTimerWithTimeInterval,但它们显示的参数始终
我读了一段代码,它每秒检查数据并更新 UI。这听起来像我们通常使用 NSTimer scheduledtimerwithtimeinterval 所做的事情。但是这段代码是通过递归调用 dispatc
我是一名优秀的程序员,十分优秀!