【发布时间】:2012-07-26 01:27:45
【问题描述】:
我的应用程序使用CLLocationManager 跟踪用户。在代表电话didUpdateToLocation 中,我做了所有有趣的事情来挽救他们的职位。但是,我需要一种方法来测试它们是否已经停止。那样我就可以停止记录位置并考虑他们的旅行。所以我在CCLocationManager 中有一个NSTimer,每次调用didUpdateToLocation 时都会添加和删除它。当用户停止并且CLLocationManager 停止被调用时,它将被启动。
让NSTimer 工作的唯一方法是:
[[NSRunLoop mainRunLoop] addTimer:userStoppedMovingTimer forMode:NSRunLoopCommonModes];
然后删除它:
[userStoppedMovingTimer invalidate];
过去我从来没有像这样添加计时器。有人可以解释为什么会这样吗?
【问题讨论】:
-
如果您使用
+scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:创建计时器,这应该不是问题。
标签: objective-c nstimer cllocationmanager nsrunloop