gpt4 book ai didi

ios - 在不延迟当前操作的情况下触发 NSNotification

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

有没有办法在不延迟任何当前完成的代码的情况下触发 NSNotification(可能会触发大量工作)?

具体来说,我有一个 UIPanGestureRecognizer,它允许用户平移几个月、一月、二月等。一旦用户抬起手指(识别器状态更改 UIGestureRecognizerStateEnded),就会运行一些清理代码,包括一些 UI(调整frame 等),并且——重要的是——一个 NSNotification 在选定的月份触发。

这在模拟器中运行顺利,但在我的 iPhone 4 上运行时,性能很糟糕(即当我抬起手指时,UI 锁定 +1.5 秒)。如果我删除通知,性能就会恢复正常。请注意,这些通知会在整个应用程序中发送(同步基于月的日历、基于周的日历和事件列表)并且到目前为止没有显示性能问题。只有在将它们与手势识别器一起使用时,性能才会成为问题。

最佳答案

首先,您应该进行概要分析以找出究竟是什么占用了时间。延迟 1.5 秒是很长的时间,无论是现在还是延迟到 future 一段时间。

当您发布通知时,它会立即广播和处理。您可以做的最好的事情是使用 GCD 或 performSelector:withObject:afterDelay:(delay 为 0)在运行循环的下一次迭代中发布通知。

关于ios - 在不延迟当前操作的情况下触发 NSNotification,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19101903/

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