在NSNotificationQueues上使用合并通知时,有什么方法可以控制时间范围吗?
我想合并,例如在下一秒,但据我所知,它要么是立即,要么是在下一次运行循环调用时,或者是“空闲时”。
有没有其他方法可以在更长的时间范围内进行合并?
我基本上是在寻找一种方法,在很小的时间范围内收集所有用户事件(如按压缩放),并仅在用户明显停止缩放/等之后才启动昂贵的操作。
发布于 2016-07-25 19:27:48
您可以在收到第一个通知时安排NSTimer。当下一个通知到达时,检查您的timer实例变量。如果它不是nil,则忽略通知。否则启动一个新的计时器。
当计时器触发时,清除timer实例变量并启动代价高昂的操作。
一种更简单的替代方法是使用performSelector:afterDelay:和cancelPreviousPerformRequestsWithTarget:selector:object:。然而,效果并不相同。每次收到通知时,您都会进一步延迟代价高昂的操作。如果通知到达的时间比您设置的延迟快,则开销较大的操作将永远不会运行。
https://stackoverflow.com/questions/38498807
复制相似问题