最近在研究检测页面卡顿的问题,发现基本上都是基于Runloop的,所以打算把Runloop再好好复习一遍,于是就把学习的过程记录一下。
最近在研究检测页面卡顿的问题,发现基本上都是基于Runloop的,所以打算把Runloop再好好复习一遍,于是就把学习的过程记录一下。
NSRunLoop
(线程不安全) 和 CFRunLoopRef
(线程安全)。但是NSRunloop
是闭源的,我们无法直接查看到内部实现,但是CFRunLoopRef
是开源的,CFRunLoopRef
在 CoreFoundation
框架内,它提供了纯 C 函数的 API,接下来我们就分析一下CFRunLoopRef
的内部实现。目前最新的版本是 CF-855.17
.平时我们在开发中经常会用到block,那么这个block究竟是个什么东东? 然后使用的时候需要注意什么呢? 话不多说,直接进入正题。。。
在OC中,所有的方法调用其实都是通过消息传递机制来查询且执行方法,而且在编译期间,是不知道谁调用谁的,都是在运行时才确定调用对象,而消息传递的核心则是
objc_msgSend
函数,下面我们就开始研究下objc_msgSend
Objective-C Runtime是一个Runtime库,基本上是用C和汇编完成的,使C具有了面向对象的能力。这也使得Objective-C语言成为了一个动态语言。
iPhone内置的传感器有:
运动传感器\加速度传感器\加速计(Motion/Accelerometer Sensor)
环境光传感器(Ambient Light Sensor)
距离传感器(Proximity Sensor)
磁力计传感器(Magnetometer Sensor)
内部温度传感器(Internal Temperature Sensor)
湿度传感器(Moisture Sensor)
陀螺仪(Gyroscope)