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 方法中,执行任务,执行之后删除任务