NSRunLoop

  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

/// 当前runloop
public class func currentRunLoop() -> NSRunLoop

/// 主runloop
@available(iOS 2.0, *)
public class func mainRunLoop() -> NSRunLoop

/// 当前runlooop运行模式
public var currentMode: String? { get }

/// 获取底层CFRunLoop
public 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)
/// 移除NSPort
public 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: void
public 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值