gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 12:10:31 31 4
gpt4 key购买 nike

我想播放具有多个 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/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com