NSRunLoop
来源:互联网 发布:2017省市区数据库sql 编辑:程序博客网 时间:2024/06/06 03:50
- Accessing Run Loops and Modes
- Managing Timers
- Managing Ports
- Running a Loop
- Scheduling and Canceling Messages
NSRunLoop是一种更加高明的消息处理模式,他就高明在对消息处理过程进行了更好的抽象和封装,这样才能是的你不用处理一些很琐碎很低层次的具体消息的处理,在NSRunLoop中每一个消息就被打包在input source或者是timer source中了。
如图所示,将消息放到循环中,保证每个消息在循环的过程中都能执行。
1 Accessing Run Loops and Modes
/// 当前runlooppublic class func currentRunLoop() -> NSRunLoop/// 主runloop@available(iOS 2.0, *)public class func mainRunLoop() -> NSRunLoop/// 当前runlooop运行模式public var currentMode: String? { get }/// 获取底层CFRunLooppublic func getCFRunLoop() -> CFRunLoop/// 根据执行模式返回下一次执行时间public func limitDateForMode(mode: String) -> NSDate?
2 Managing Timers
/// 添加NSTimer到指定的模式public func addTimer(timer: NSTimer, forMode mode: String)
3 Managing Ports
/// 添加一个NSPort到指定的模式public func addPort(aPort: NSPort, forMode mode: String)/// 移除NSPortpublic func removePort(aPort: NSPort, forMode mode: String)
4 Running a Loop
/// 运行public func run()/// 在什么时间节点前运行public func runUntilDate(limitDate: NSDate)/// 在指定的时间前指定的模式中运行public func runMode(mode: String, beforeDate limitDate: NSDate) -> Bool/// 在指定的时间前指定的模式中循环运行一次public func acceptInputForMode(mode: String, beforeDate limitDate: NSDate)
5 Scheduling and Canceling Messages
/// 添加消息任务////// - parameter aSelector : Selector/// - parameter target : 目标类/// - parameter arg : 携带数据/// - parameter order : 优先级/// - parameter modes : 执行模式////// - returns: voidpublic func performSelector(aSelector: Selector, target: AnyObject, argument arg: AnyObject?, order: Int, modes: [String])/// 取消消息任务public func cancelPerformSelector(aSelector: Selector, target: AnyObject, argument arg: AnyObject?)/// 取消发送给目标的消息public func cancelPerformSelectorsWithTarget(target: AnyObject)
Appendix
Sample Code
Swift
Related Documentation
NSRunLoop Class Reference
Threading Programming Guide
【iOS程序启动与运转】- RunLoop个人小结
Revision History
Copyright
CSDN:http://blog.csdn.net/y550918116j
GitHub:https://github.com/927337973/Blog
0 0
- NSRunLoop
- nsrunloop
- NSRunloop
- nsrunloop
- NSRunLoop
- NSRunloop
- NSRunLoop
- NSRunLoop
- NSRunLoop
- NSRunLoop
- NSRunLoop
- NSRunLoop
- NSRunLoop
- NSRunLoop
- NSRunLoop
- NSRunLoop
- NSRunloop
- NSRunLoop
- 自适应字符环境wind32程序
- 喜讯!我国自主知识产权AVS VR标准进入研发阶段
- hdu 1542 Atlantis(扫描线)
- Floyed 算法求最短路径
- An internal error occurred during: "Build Project". GC overhead limit exceeded
- NSRunLoop
- 嵌入式系统课程开始
- [leetcode] 236. Lowest Common Ancestor of a Binary Tree
- 有符号和无符号数表示
- nyoj-686-An Interesting Sequence【分解质因数】
- LeetCode 58 - Length of Last Word
- java cookie全解析
- 7 行代码集成所有移动支付,“Ping++” 试图打造中国版 Stripe
- Java 多线程(五)——线程通信(共享内存、管道流、wait()、notify()等)