objective-c - 合并 NSNotifications

标签 objective-c cocoa nsnotificationcenter nsnotifications nsnotification

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

我想合并,例如下一秒,但据我了解可用的选项,它要么立即执行,要么在下一个运行循环调用时执行,或者“空闲时”执行。

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

我基本上正在寻找一种方法来收集小时间范围内的所有用户事件(例如捏合缩放),并仅在用户明显停止缩放/等之后才启动昂贵的操作。

最佳答案

您可以在第一个通知到来时安排一个NSTimer。当下一个通知到来时,检查您的计时器实例变量。如果它非零,则忽略该通知。否则启动一个新的计时器。

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

更简单的替代方法是使用 performSelector:afterDelay:cancelPreviousPerformRequestsWithTarget:selector:object:。但效果并不一样。每次收到通知时,您都会进一步延迟昂贵的操作。如果通知的发送速度快于您设置的延迟,则昂贵的操作将永远不会运行。

关于objective-c - 合并 NSNotifications,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38498807/

相关文章:

objective-c - 如何在 UILabel 中只显示有效小数?

objective-c - 如何在 Swift 中为 CMutablePointer<MKMapPoint> 设置值

objective-c - SCEvents 在某些方法中不起作用?

objective-c - Mac OS X : How can I get the MAC addresses of all available WiFi networks?

ios - 如何在 Swift/Xcode 中检测通知中心的关闭?

ios - 在我自己的设备上使用我自己的应用程序是否可以,其中包含 AdMob 广告

python - 如何使用 Python 打开此 JSON 数据?

objective-c - 使用沙箱主应用程序启动和终止辅助应用程序

ios - Swift 3 协议(protocol)的可选绑定(bind)

iphone - 如何使用 NSNotificationcenter 的 object 属性