当前位置: 首页 > news >正文

陕西住房与建设厅网站做公司官网找谁

陕西住房与建设厅网站,做公司官网找谁,创建网站的代码,新都网站开发文章目录 iOS - Runloop介绍1. 简介1.1 顾名思义1.2. 应用范畴1.3. 如果没有runloop1.4. 如果有了runloop 2. Runloop对象3. Runloop与线程4. 获取Runloop对象4.1 Foundation4.2 Core Foundation4.3 示例 5. Runloop相关的类5.1 Core Foundation中关于RunLoop的5个类5.2 CFRunL…

文章目录

  • iOS - Runloop介绍
    • 1. 简介
      • 1.1 顾名思义
      • 1.2. 应用范畴
      • 1.3. 如果没有runloop
      • 1.4. 如果有了runloop
    • 2. Runloop对象
    • 3. Runloop与线程
    • 4. 获取Runloop对象
      • 4.1 Foundation
      • 4.2 Core Foundation
      • 4.3 示例
    • 5. Runloop相关的类
      • 5.1 Core Foundation中关于RunLoop的5个类
      • 5.2 CFRunLoopRef
      • 5.3 CFRunLoopModeRef
      • 5.4 相关的类之间的关系
        • 5.4.1 CFRunLoopModeRef
          • 5.4.1.1常见的2种Mode
      • 5.5 Runloop状态
        • 5.5.1 监听Runloop状态

iOS - Runloop介绍

1. 简介

1.1 顾名思义

  • 运行循环
  • 在程序运行过程中循环做一些事情

1.2. 应用范畴

  • 定时器(Timer)、PerformSelector
  • GCD Async Main Queue
  • 事件响应、手势识别、界面刷新
  • 网络请求
  • AutoreleasePool

1.3. 如果没有runloop


执行完第13行代码后,会即将退出程序

1.4. 如果有了runloop

  • 程序并不会马上退出,而是保持运行状态
  • RunLoop的基本作用
    1. 保持程序的持续运行
    2. 处理App中的各种事件(比如触摸事件、定时器事件等)
    3. 节省CPU资源,提高程序性能:该做事时做事,该休息时休息

2. Runloop对象

  • iOS中有2套API来访问和使用RunLoop

    1. Foundation:NSRunLoop

    2. Core Foundation:CFRunLoopRef

  • NSRunLoopCFRunLoopRef都代表着RunLoop对象

    1. NSRunLoop是基于CFRunLoopRef的一层OC包装
    2. CFRunLoopRef是开源的

https://opensource.apple.com/tarballs/CF/

3. Runloop与线程

  • 每条线程都有唯一的一个与之对应的RunLoop对象

  • RunLoop保存在一个全局的Dictionary里,线程作为keyRunLoop作为value

  • 线程刚创建时并没有RunLoop对象,RunLoop会在第一次获取它时创建

  • RunLoop会在线程结束销毁

  • 主线程的RunLoop已经自动获取(创建),子线程默认没有开启RunLoop

4. 获取Runloop对象

4.1 Foundation

  • [NSRunLoop currentRunLoop]; // 获得当前线程的RunLoop对象
  • [NSRunLoop mainRunLoop]; // 获得主线程的RunLoop对象

4.2 Core Foundation

  • CFRunLoopGetCurrent(); // 获得当前线程的RunLoop对象`
  • CFRunLoopGetMain(); // 获得主线程的RunLoop对象

4.3 示例

5. Runloop相关的类

5.1 Core Foundation中关于RunLoop的5个类

  1. CFRunLoopRef
  2. CFRunLoopModeRef
  3. CFRunLoopSourceRef
  4. CFRunLoopTimerRef
  5. CFRunLoopObserverRef

5.2 CFRunLoopRef

  • _modes里面装了多个CFRunLoopModeRef对象,其中只有一个mode作为_currentMode

5.3 CFRunLoopModeRef

5.4 相关的类之间的关系

  • CFRunLoopRef里面装了多个CFRunLoopModeRef对象
  • CFRunLoopModeRef对象里面装的是CFRunLoopSourceRefCFRunLoopTimerRefCFRunLoopObserverRef
5.4.1 CFRunLoopModeRef
  • CFRunLoopModeRef代表RunLoop的运行模式

  • 一个RunLoop包含若干个Mode,每个Mode又包含若干个Source0/Source1/Timer/Observer

  • RunLoop启动时只能选择其中一个Mode,作为currentMode

  • 如果需要切换Mode,只能退出当前Loop,再重新选择一个Mode进入

    1. 不同组的Source0/Source1/Timer/Observer能分隔开来,互不影响
  • 如果Mode里没有任何Source0/Source1/Timer/Observer,RunLoop会立马退出

5.4.1.1常见的2种Mode
  • kCFRunLoopDefaultMode(NSDefaultRunLoopMode):App的默认Mode,通常主线程是在这个Mode下运行

  • UITrackingRunLoopMode:界面跟踪 Mode,用于 ScrollView 追踪触摸滑动,保证界面滑动时不受其他 Mode 影响

5.5 Runloop状态

5.5.1 监听Runloop状态
CFRunLoopObserverRef observer = CFRunLoopObserverCreateWithHandler(kCFAllocatorDefault, kCFRunLoopAllActivities, YES, 0, ^(CFRunLoopObserverRef observer, CFRunLoopActivity activity) {switch (activity) {case kCFRunLoopEntry: {NSLog(@"kCFRunLoopEntry");}break;case kCFRunLoopBeforeTimers: {NSLog(@"kCFRunLoopBeforeTimers");}break;case kCFRunLoopBeforeSources: {NSLog(@"kCFRunLoopBeforeSources");}break;case kCFRunLoopBeforeWaiting: {NSLog(@"kCFRunLoopBeforeWaiting");}break;case kCFRunLoopAfterWaiting: {NSLog(@"kCFRunLoopAfterWaiting");}break;case kCFRunLoopExit: {NSLog(@"kCFRunLoopExit");}break;;default:break;}
});
CFRunLoopAddObserver(CFRunLoopGetCurrent(), observer, kCFRunLoopCommonModes);
CFRelease(observer);

触发一次点击事件:

@oubijiexi

http://www.yayakq.cn/news/856936/

相关文章:

  • 迁安做网站中的cms润强手机网站滑动效果
  • 一站式海外推广平台wordpress单本小说站
  • 网站维护学习做的比较好的国外网站一级页面布局分析
  • 协会网站建设哪里实惠建设银行U盾不自己弹网站了
  • 做防伪查询网站网站制作需要学什么
  • 济南建设银行公积金网站如何更换网站图片
  • 广州 Wix网站开发什么推广平台比较好
  • 品牌网络推广运营公司宁波seo关键词优化外包
  • 建一个营销网站多少钱wordpress 的论坛
  • 关于网站设计的价格企业网站管理系统的设计与实现
  • 塘厦镇仿做网站个人网站建设的参考文献
  • 邯郸网站制作基本流程秦皇岛手机网站建设
  • 厦门关键词seo排名网站wordpress订阅会员
  • 网站建设移动端是什么意思如何做商业网站分析
  • 开通网站需要什么手续制作网页的工具主要有哪些
  • 公司做网站需准备什么材料网站的用途
  • 网站做备案需要多久做网站需要多少人
  • 顺的网站建设服务室内设计效果图ppt演示
  • 网站建设实训报告的内容怎么写莱芜新闻最新消息
  • 模板网站也可以做优化如何建一个论坛网站
  • 一般做企业网站需要什么工程管理软件
  • 企业网站建设公司价格建设网站翻译英文翻译
  • 商务网站建设与维护 课件大连做企业网站的公司
  • 雄县哪做网站选择做印象绍兴网站的原因
  • 永川网站建设公司企业管理网络图
  • 设计外贸网站内蒙古做网站公司
  • 沈阳做手机网站的公司nova wordpress主题
  • 招聘类网站建设深圳定制网站制作报价
  • 网站建设情况调查表有没有做头像的网站
  • 能下载的网站推广平台怎么做