合并NSNotifications

时间:2016-07-21 08:21:48

标签: objective-c cocoa nsnotificationcenter nsnotifications nsnotification

NSNotificationQueues上使用合并通知来控制时间范围时有什么办法吗?

我想合并,例如下一秒,但据我了解可用的选项,它是立即或下次运行循环调用或'空闲时'..

任何其他方式,例如在更长的时间范围内合并?

我基本上是在寻找一种方法来收集所有用户事件(如缩放到缩放),并在用户显然停止缩放等时启动昂贵的操作。

1 个答案:

答案 0 :(得分:0)

您可以在第一个通知进入时安排NSTimer。当下一个通知进入时,请检查您的计时器实例变量。如果它是非零,则忽略该通知。否则开始一个新的计时器。

当计时器触发时,清除计时器实例变量并启动昂贵的操作。

更简单的替代方法是使用performSelector:afterDelay:cancelPreviousPerformRequestsWithTarget:selector:object:。然而效果并不相同。每次收到通知时,您将进一步延迟昂贵的操作。如果通知比您设置的延迟快,那么昂贵的操作将永远不会运行。