RunLoop

2016-12-21  本文已影响0人  KAKA_move

-  iOS 的体系架构

       1. cocoaTouch

       2.  Media

       3. Core  Services 核心服务层

       4. core OS 核心操作系统层

- cocoa Touch  

        - 其中有UIKit 框架 精通CocaTouch 就是精通CocaTouch

        - 包含了简建立应用程序的主要框架

        - 定义APP的外观和基础组件

        - 多任务 手势输入 推送通知等高级系统服务 

         - 设计APP 优先考虑这一层级 (由高到低)

- medie 层

        - 音频视频

         - 提供试听

- Core services Layer

         - app所取得基础系统服务

         - core Foundation 和 Foundation框架 提供了基本类型(NSString. NSArray.NADictionNary)

         - 定位 icloud 媒体社交 网络 等功能 

         - 最底层的数据搭建

- Core OS 

         - 有蓝牙

Runloop 

- 有一个死循环,这个线程不能死亡 

- 一直等待用户交互

- 负责所有的事件监听

- 主线程的RunLoop在程序一运行就会开启

- 不能自己创建RunLoop ,一个线程只有一个Runloop 只能Get

- runLoop的线程是不安全的,不要在其他线程上调用当前线程的Runloop

- 管理 AutoReleasePool

- 消息事件,即: 输入源事件  计时器事件  网络请求事件

             - 计时器 

                    NSTimer  + CADisplaylink 

                    定时不使用的时候一定要销毁,平时只用这一点使用Runloop,所有监听的方法都被苹果封装完了.

* runLoop的应用场景 

          - NSUrlConnection 这个古老的框架,用到了Runloop,AFN2.0封装的时候用到了

          - socket 开发,使用Runloop能监听网络端口的接接受和发送;

          - socket 通常使用在智能家居/游戏机;

         - 自动释放池的释放和创建与runloop有关

*Runloop两个模式:

         - defaultMode  等待用户交互

         - trackingMode 可以负责滚动

          - common modes 包含以上两个 (时钟的运用)

上一篇下一篇

猜你喜欢

热点阅读