NSRunLoop

来源:互联网 发布:2017省市区数据库sql 编辑:程序博客网 时间:2024/06/06 03:50
  1. Accessing Run Loops and Modes
  2. Managing Timers
  3. Managing Ports
  4. Running a Loop
  5. 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

NSRunLoop Class Reference

Threading Programming Guide

【iOS程序启动与运转】- RunLoop个人小结

Revision History

时间 描述 2016-03-09 博文完成

CSDN:http://blog.csdn.net/y550918116j

GitHub:https://github.com/927337973/Blog

0 0