是否有辦法觸發NSNotification(可能會觸發相當數量的工作)而不延遲任何當前完成的代碼?在沒有延遲當前操作的情況下觸發NSNotification
具體來說,我有一個UIPanGestureRecognizer,它允許用戶平移數月,一月,二月等。一旦用戶舉起他們的手指(識別器狀態改變UIGestureRecognizerStateEnded),有一些清理代碼運行,包括一些用戶界面一個框架等),以及 - 重要的是 - 在選定月份觸發的NSNotification。
這可以在模擬器中順利運行,但是當在我的iPhone 4上運行時,性能非常糟糕(即當我擡起手指時,UI鎖定時間爲+1.5秒)。如果我刪除通知,則表現會恢復良好。請注意,這些通知正在整個應用中發送(同步一個基於月的日曆,一個基於星期的日曆和一個事件列表),並且直到現在都沒有顯示性能問題。只有當它們與手勢識別器一起使用時,性能才成爲問題。
你真的應該使用Instruments工具並運行Time Profiler模塊來查看代碼真正拖延了多久。對我來說,這聽起來像是某些操作阻止了主UI線程,而不是在其自己的線程中運行。但沒有時間限制,只是猜測而已。 – ExitToShell