ios - 如何暂停和恢复多个 NSTimer?

标签 ios objective-c iphone nstimer

我想播放具有多个 scheduledTimerWithTimeInterval 设置的声音(铃铛),例如每 5 次、每 9 次、每 35 次、6 次……等等,现在我开始播放间隔 55、56、59、60、45、42。 ...但我想在 52 暂停时间然后我使所有计时器无效,因为没有暂停方法或 NSTimer 的属性之后我再次启动计时器以新的间隔开始,如 48、47、43 ....但我想维护旧间隔所以任何人都知道请帮助我。

-(void) bellsSchedual {
    arrBellsListAllData = [DBModel getDataFromBellsList:prop.userId];
    DBProperty *bellProp = [[DBProperty alloc]init];

    for (int i = 0; i < arrBellsListAllData.count; i++) {
        bellProp=[arrBellsListAllData objectAtIndex:i]; 
        NSString* bellsTime=bellProp.bTime; 
        if ([bellProp.bTimeSchedule isEqualToString: @"after"]) {
            NSTimer* bellTimer = [NSTimer scheduledTimerWithTimeInterval: [bellsTime intValue] 
                                                                  target: self 
                                                                selector: @selector(playSound:) 
                                                                userInfo: nil 
                                                                 repeats: NO]
            [arrTimers addObject:bellTimer]; 
        } else if ([bellProp.bTimeSchedule isEqualToString: @"every"]) {
            NSTimer* bellTimer = [NSTimer scheduledTimerWithTimeInterval: [bellsTime intValue] 
                                                                  target: self 
                                                                selector: @selector(playSound:) 
                                                                userInfo: nil 
                                                                 repeats: YES]; 
            [arrTimers addObject: bellTimer]; 
        } 
   } 
} 

谢谢

最佳答案

如果我正确理解您的问题,您需要一个可以暂停的计时器,并且已正确确定 NSTimer 不能暂停。

您可以大致考虑的是:

  1. 您自己的计时器类提供了一个方法,比如 tick,它会导致计时器继续运行。为每个铃声使用此类的一个实例;和
  2. 使用重复的 NSTimer 提供计时 - 当它触发时,它会调用所有已注册的自定义计时器的 tick 方法。使此 NSTimer 无效将停止滴答,从而有效地暂停自定义计时器。创建一个新的 NSTimer 来提供滴答将重新启动您的自定义计时器。

HTH

关于ios - 如何暂停和恢复多个 NSTimer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33561238/

相关文章:

ios - 将 NSString 与来自 Parse.com 的 NSArray 进行比较(Obj-c)

iphone - 在 VMWare 中安装 Leopard

iphone - 为什么我的窗口 subview 显示,但不处理任何触摸?

iphone - 背景图像颜色未正确显示

ios - 主事件循环和应用程序的运行循环有什么区别?

ios - 如何在没有 Cocoapods 的情况下手动将包添加到 Swift

ios - 有必要在 PayPal 的 iOS SDK 中验证付款吗?

ios - Objective-C 如何列出所有可用的运营商网络?

ios - 使用自动布局删除 View 并重新排列其余部分

ios - 修剪 UIImage 的透明度