runloop就是运行循环,ios应用程序只要你不点击退出能一直跑在手机上,就是归功于runloop,它工作在底层,原理就是因为runloop是一个死循环,我们明白当一个局部方法,程序执行完了也就停止了,但只要有runloop,它就能一直的重复调用它,所以我们的ios程序能一直运行下去而不退出。
Runloop里面有两个核心的东西:输入源(input source)和定时源(timer source),都是用来处理事件的。
输入源处理异步消息,通常处理来自于其他线程或者程序(比如图片下载啊,下载完回到主线程显示)。定时源是用来处理同步消息的,在特定时间或者一定的时间间隔发生(比如处理UI事件啊,如点击事件,滚动事件,刷新事件)。 |