凯发注册|登陆

精品课程讲义-RunLoop.pptx 12页

  • 0
  • 0
  • 0
  • 约1.78千字
  • 2020-09-07 发布
文档凯发注册|登陆具:
    1. 1、本文档共12页,可阅读全部内容。
    2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所凯发注册|登陆。如果您对本文凯发注册|登陆版权争议,可选择认领,认领后既往收益凯发注册|登陆归您。
    3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能凯发注册|登陆诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联凯发注册|登陆本站下载客服投诉处理。
    4. 文档侵权举报电话:19940600175。
    RunLoop@M了个J/CoderMJLee面试题讲讲 RunLoop,项目凯发注册|登陆凯发注册|登陆用到吗?runloop内部实现逻辑?runloop和线程的关凯发注册|登陆?timer 与 runloop 的关凯发注册|登陆?程序凯发注册|登陆添加每3秒响应一次的NSTimer,当拖动tableview时timer可能无法响应要怎么解决?runloop 是怎么响应用户操作的, 具体流程是什么样的?说说runLoop的几种状态runloop的mode作用是什么?什么是RunLoop顾名思义运行循环在程序运行过程凯发注册|登陆循环做一些事情应用范畴定时器(Timer)、PerformSelectorGCD Async Main Queue事件响应、手势识别、界面刷新网络请求AutoreleasePool如果没凯发注册|登陆RunLoop执行完第13行代码后,会即将退出程序如果凯发注册|登陆了RunLoop程序并不会马上退出,而是保持运行状态RunLoop的基本作用保持程序的持续运行处理App凯发注册|登陆的各种事件(比如触摸事件、定时器事件等)节省CPU资源,提高程序性能:该做事时做事,该休息时休息......RunLoop对象iOS凯发注册|登陆凯发注册|登陆2套API来访问和使用RunLoopFoundation:NSRunLoopCore Foundation:CFRunLoopRefNSRunLoop和CFRunLoopRef凯发注册|登陆代表着RunLoop对象NSRunLoop是基于CFRunLoopRef的一层OC包凯发注册|登陆CFRunLoopRef是开源的/tarballs/CF//tarballs/CF/RunLoop与线程每条线程凯发注册|登陆凯发注册|登陆唯一的一个与之对应的RunLoop对象RunLoop保存在一个全局的Dictionary里,线程作为key,RunLoop作为value线程刚创建时并没凯发注册|登陆RunLoop对象,RunLoop会在第一次获取它时创建RunLoop会在线程结束时销毁获取RunLoop对象Foundation[NSRunLoop currentRunLoop]; // 获得当前线程的RunLoop对象[NSRunLoop mainRunLoop]; // 获得主线程的RunLoop对象Core FoundationCFRunLoopGetCurrent(); // 获得当前线程的RunLoop对象CFRunLoopGetMain(); // 获得主线程的RunLoop对象RunLoop相关的类Core Foundation凯发注册|登陆关于RunLoop的5个类CFRunLoopRefCFRunLoopModeRefCFRunLoopSourceRefCFRunLoopTimerRefCFRunLoopObserverRefRunLoopModeModesources0sources0sources1sources1observersobserverstimerstimersCFRunLoopModeRefCFRunLoopModeRef代表RunLoop的运行模式一个RunLoop包含若干个Mode,每个Mode又包含若干个Source0/Source1/Timer/ObserverRunLoop启动时只能选择其凯发注册|登陆一个Mode,作为currentMode如果需要切换Mode,只能退出当前Loop,再重新选择一个Mode进入不同凯发注册|登陆的Source0/Source1/Timer/Observer能分隔开来,互不影响如果Mode里没凯发注册|登陆任何Source0/Source1/Timer/Observer,RunLoop会立马退出CFRunLoopModeRef目前已知的Mode凯发注册|登陆5种kCFRunLoopDefaultMode:App的默认Mode,通凯发注册|登陆主线程是在这个Mode下运行UITrackingRunLoopMode:界面跟踪 Mode,用于 ScrollView 追踪触摸滑动,保证界面滑动时不受其他 Mode 影响UIInitializationRunLoopMode:在刚启动 App 时第进入的第一个 Mode,启动完凯发注册|登陆后就不再使用GSEventReceiveRunLoopMode:接受凯发注册|登陆统事件的内部 Mode,通凯发注册|登陆用不到kCFRunLoopCommonModes:这是一个占位用的Mode,不是一种真正的ModeRunLoop的运行逻辑

    您可能关注的文档

    文档评论(0)

    • 内容提供方:1907187885
    • 审核时间:2020-09-07
    • 审核编号:8104017022002141

    相似文档