
曙海教学优势
本课程面向企事业项目实际需要,秉承二十一年积累的教学品质,RunLoop基础培训以项目实现为导向,老师将会与您分享设计的全流程以及工具的综合使用技巧、经验。线上/线下/上门皆可,RunLoop基础培训专家,课程可定制,热线:4008699035。
  大批企业和曙海
     建立了良好的合作关系,合作企业30万+。曙海的课程培养了大批受企业欢迎的工程师。曙海的课程在业内有着响亮的知名度。
一:什么是RunLoop
   (1)从字面意思看,运行循环、跑圈。
   (2)保持程序持续运行,处理App中的各类事件包括触摸事件、定时器事件、Selector事件。
   (3)节省CPU资源,提高程序的性能,该做事的时候做事,该休息的时候休息。
   
二:RunLoop与线程
    
   (1)每条线程都有唯一的一个与之对应的RunLoop对象。
   (2)主线程的RunLoop已经自动创建好了,子线程的RunLoop需要主动创建。
   (3)RunLoop在第一次获取时创建,在线程结束时候销毁。
三:RunLoop相关类
   Core Foundation中关于RunLoop的5个类
   1:CFRunLoopRef
   2:CFRunLoopModeRef  ,CFRunLoopModeRef代表RunLoop的运行模式,一个RunLoop包含若干个运行模式,即一个RunLoop包含若干个Mode,每个Mode又包含若干个Source/Timer/Observer,每次RunLoop启动时,只能指定其中一个Mode,这个Mode被称作CurrentMode,如果需要切换Mode,只能退出Loop,再重新指定一个Mode进入。系统默认注册了5个Mode:
   (1)kCFRunLoopDefaultMode:App的默认的Mode,通常线程是在这个Mode下运行
   (2)UITrackingRunLoopMode:界面跟踪Mode,用于ScrollView追踪触摸滑动,保证界面滑动时不受其它Mode影响
   (3)UIInitializationRunLoopMode:在刚启动App时进入的第一个Mode,启动完成后就不再使用
   (4)GSEventReceiveRunLoopMode:接收系统事件的内部Mode,通常用不到。
   (5)kCFRunLoopCommonMode:这是一种占位用的Mode,不是一种真正的Mode。
   3:CFRunLoopTimerRef
   (1)CFRunLoopTimerRef是基于时间的触发器。
   (2)基本上说的就是NSTimer,它会受到runloop的Mode的影响。
   (3)GCD的定时器不受RunLoop的mode的影响。