详细示例代码github仓库总结:NIiOS
##### (二十) iOS RunLoop
```
Runloop
RunLoop的应用
- [x] 常驻线程
NSTimer
- [x] 1. 定时器的使用
- [x] 2. 滑动时失效
- [x] 3. 不准时
- [x] AutoreleasePool
- [x] 事件响应
- [x] 手势识别
- [x] 界面更新
PerformSelecter
// 1.和RunLoop不相干,底层直接调用objc_sendMsg方法
- [x] (id)performSelector:(SEL)aSelector withObject:(id)object;
// 2. 和RunLoop相关,封装成Source0事件,依赖于RunLoop,若线程无对应的RunLoop,会调用objc_sendMsg执行
- [x] (void)performSelectorOnMainThread:(SEL)aSelector withObject:(nullable id)arg waitUntilDone:(BOOL)wait;
// 3. 和RunLoop相关,封装成Timers事件
- [x] (void)performSelector:(SEL)aSelector withObject:(nullable id)anArgument afterDelay:(NSTimeInterval)delay;
关于 GCD
- [x] 在 RunLoop 的源代码中可以看到用到了 GCD 的相关内容,但是 RunLoop 本身和 GCD 并没有直接的关系。
RunLoop中的Mode
- [x] 一个RunLoop包含若干个Mode,每个Mode又包含若干个 Sou