runloop相关

runloop的相关类:
CFRunLoop
CFRunLoopMode
CFRunLoopTimer
CFRunLoopSource
CFRunLoopObserve
每一个线程都对应一个runloop
主线程对应的runloop系统自动帮我们创建好了
子线程的runloop需要我们自己手动创建
 
 
关于mode:
runloop每次只能在一种模式下运行:
模式model有5种:(前2种常用,后3种不怎么使用)
NSRunLoopDefaultMode
UITrackingRunLoopMode
.
.
.
 
比如说:定时器设置在default模式下,如果滚动拖曳textview,(切换)启用的是UITrackingRunLoopMode ,此时添加在default模式下的定时器不起作用
为了在滚动模式下定时器也可以使用:可以把定时器添加在占位common模式下,或者把定时器分别添加在2个模式下,让2个模式中都有定时器,这样不管切换到哪个模式下,都可以正常使用
 
关于timer:
NSTimer sche........这个方法启用的定时器可以直接使用
NSTimer*timer=[NSTimer timerin......]
创建对象产生的NSTimer对象,就必须添加到runloop的一种mode模式中才可以正常使用
 
 
关于source:
source0:是指接收用户触摸的事件源
source1:是指系统内核触发的事件源
 
 
关于observe:
监听、观察者:主要用于监听当前runloop的状态:是进入状态、处理timer状态、处理source状态、休息状态、唤醒状态(总共有5种状态)
 
posted @ 2018-01-25 23:51  gaogaihui  阅读(98)  评论(0编辑  收藏  举报