NSRunLoop:消息机制的处理模式。
1、基本作用
1、保持程序的持续运行;
2、处理app中各种时间(触摸事件、定时器、selector事件);
3、节省CPU资源,提高程序性能:有事做,runloop让线程工作,无事做,让当前runloop的线程休眠。
2、Runloop vs 线程
1、每个线程都有唯一与之对应的runloop对象;
2、主线程的runloop已自动创建好,子线程的runloop需要主动创建;
3、runloop在第一次获取时创建,在线程结束时销毁。
3、获取Runloop对象
[NSRunLoop currentRunLoop]; //获得当前线程的Runloop对象
[NSRunLoop mainRunLoop]; //获得主线程的Runloop对象
4、RunLoop modes
1、NSDefaultRunLoopMode :处理所以输入源(NSConnect除外),常用模式。
2、NSRunLoopCommonModes:一组mode的集合,输入源加入,则在所包含的mode都可以处理。默认情况下CommonModes包含DefaultModes、ModalModes、EventTrackingModes。
3、NSConnectReplyMode:处理NSConnect事件,系统用。
4、NSModalPanelRunLoopMode:处理modalPannal模态面板事件,如NSSavePanel和NSOpenPanel。
5、NSEventTrackingRunLoopMode:处理用户界面事件(组件拖动)。