NSRunLoop( 消息循环 )
来源:互联网 发布:mac照片上传icloud 编辑:程序博客网 时间:2024/06/05 17:10
1. 什么是RunLoop?
- 就是消息循环,每个线程内部都有一个消息循环;
- 主线程默认开启消息循环, 子线程默认不开启;
2. RunLoop的目的?
- 保证程序不会退出;
- 负责处理事件;
- 如果没有事件发生, 会让程序进入到休眠模式;
3. 事件类型( 输入源, 定时源 )
4.事件的使用( NSTimer )
4.1创建 NSTimer
输出当前循环的模式
没有拖动界面 — — kCFRunLoopDefaultMode
拖动界面 — —UITrackingRunLoopMode
4.2 循环常用模式
- NSDefaultRunLoopMode 默认模式
-------拖动界面,, 定时源不懂
- NSRunLoopCommonModes 普通模式
--------拖动界面,定时源不受影响
5. 使用总结
1. 创建消息
2. 把消息放入循环, 并指定消息的运行模式
3. 在循环的模式匹配的时候, 消息运行
6. 子线程的消息循环
1. 创建线程
2. 往线程的消息循环中加入源
3. 开启循环 ( 三种方法 )
- [[NSRunLoopcurrentRunLoop]run]; ——— 无法停止消息循环停止
- [[NSRunLoopcurrentRunLoop]runUntilDate:[NSDatedateWithTimeIntervalSinceNow:2]]; ——— 指定循环运行时间
- BOOLshouldKeepRunning = YES; // global —— 要声明全局变量
NSRunLoop *theRL = [NSRunLoopcurrentRunLoop];
while (shouldKeepRunning && [theRLrunMode:NSDefaultRunLoopModebeforeDate:[NSDatedistantFuture]]); ——— 苹果推荐使用
1 0
- NSRunLoop( 消息循环 )
- 消息循环NSRunLoop
- NSRunLoop消息循环
- NSRunLoop(运行循环)
- 186,NSRunLoop运行循环
- iOS 【Mutithreading-NSRunLoop 运行循环】
- NSRunLoop 运行循环的粗浅理解;
- NSRunLoop是消息机制的处理模式
- iOS开发消息篇—NSRunLoop
- NSRunLoop
- nsrunloop
- NSRunloop
- nsrunloop
- NSRunLoop
- NSRunloop
- NSRunLoop
- NSRunLoop
- NSRunLoop
- Codeforces 599D:Spongebob and Squares
- 蓝桥杯基础练习 数列特征
- 第五章 数组的数组的顺序存储表示和实现
- hdoj 1087Super Jumping! Jumping! Jumping!
- Android图片加载--妹子图客户端
- NSRunLoop( 消息循环 )
- Android Resource Types之Layout简介
- 文章标题
- 未AC
- 如何用matlab读取三维点云数据
- SiteWhere REST APIs
- 【设计模式】——简单分类
- libcef_dll_wrapper /MD /MDd的编译
- minor GC major Gc full Gc 的理解