1解決cell上的主執行緒載入卡頓問題
- 通過新增runloop 觀察者,卡頓等待的時候進行處理
-
視訊地址
-
RunLoopMode 5 種mode
-
使用 C 建立觀察者
-
獲取當前的runloop: CFRunLoopRef runloop = CFRunLoopGetCurrent();
-
建立觀察者
-
引數1:分配者,NUll 或者Defaul ,引數2:活動標誌,等待前處理,引數3:重複,引數4:從0開始,引數5:監聽到的回撥函式地址,引數6:觀察者上下文,結構體指標
-
上面引數callout,需要傳入函式的地址,觀察者,活動狀態,本文背景是等待的情況下,傳入的info
-
新增觀察者
-
在回撥中回去self,獲取不到,需要用上下文中的info引數傳遞,
-
在上面回撥中處理cell中新增的任務
-
cell中的任務載入block中,將程式碼塊新增到陣列中,延遲執行
-
將任務加入到任務陣列中
-
callback 方法中,執行任務,執行之後刪除任務