- 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 包含以上两个 (时钟的运用)
网友评论