有没有办法在不延迟任何当前完成的代码的情况下触发 NSNotification(这可能会触发大量工作)?
具体来说,我有一个 UIPanGestureRecognizer,它允许用户浏览月份、1 月、2 月等。一旦用户抬起手指(识别器状态更改 UIGestureRecognizerStateEnded),就会运行一些清理代码,包括一些 UI(调整框架等) ),而且——重要的是——在选定月份触发的 NSNotification 。
这在模拟器中运行顺利,但在我的 iPhone 4 上运行时,性能很差(即当我抬起手指时,UI 锁定 +1.5 秒)。如果我删除通知,则性能恢复良好。请注意,这些通知正在整个应用程序中发送(同步基于月份的日历、基于周的日历和事件列表)并且到目前为止没有显示性能问题。只有在这一点上,当它们与手势识别器一起使用时,性能才会成为问题。