runLoop

RunLoop

RunLoop有5种模式, 通常使用的只有两种, NSRunLoopCommonModes是NSDefaultRunLoopMode和UITrackingRunLoopMode两种模式的合集.
  • NSDefaultRunLoopMode : App的默认的Mode, 通常主线程是在Model这个模式下运行的

  • UITrackingRunLoopMode : 界面跟踪Model, 用于ScrollView追踪屏幕滑动, 保证界面滑动时不受其他Model影响

  • NSRunLoopCommonModes : 占位使用的Model, 不是真正的Model

RunLoop相关类

CFRunLoopSourceRef

CFRunLoopSourceRef是事件源, 输入源, 比如点击事件.

  • Source0 :
  • Source1 : 基于Port的, 通过内核和其他线程通信. 接收/分发系统事件. 比如点击事件, 接收到之后, 分发下去, 交给Source0处理
  • 硬件直接出发的事件进来之后首先会被Source1接收

方法调用栈:

CFRunLoopObserverRef

观察runLoop的状态改变

typedef CF_OPTIONS(CFOptionFlags, CFRunLoopActivity) {

kCFRunLoopEntry = (1UL << 0),    
kCFRunLoopBeforeTimers = (1UL << 1),
kCFRunLoopBeforeSources = (1UL << 2),
kCFRunLoopBeforeWaiting = (1UL << 5),
kCFRunLoopAfterWaiting = (1UL << 6),
kCFRunLoopExit = (1UL << 7),
kCFRunLoopAllActivities = 0x0FFFFFFFU

};

  1. 当数组中的对象释放之后, 会给数组中所有的对象发送一条release消息
  2. 当数组移除之后, 也会给数组里面的所哟对象发送一条release消息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值