![240](https://cdn2.jianshu.io/assets/default_avatar/9-cceda3cf5072bcdd77e8ca4f21c40998.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/240/h/240)
接上篇:iOS底层 消息查找流程在lookUpImpOrForward方法中会看到这样一段代码,当在缓存和方法列表中未能找到相应的imp时,会调用这段代码尝试去解析。 然后会...
接上篇iOS底层 objc_msgSend分析消息发送会调用lookUpImpOrForward方法,源码如下, 查找从消息列表里查找消息 如果没找到会返回nil, 调用ca...
1.首先通过断点查看objc_msgSend调用,在调用方法处设置断点,在菜单栏中选择Debug -> View Debugging -> 勾选Always Show Dis...
类的结构源码如下,前面分析了isa,superclass,bits都已经分析过了,现在来看看cache,首先查看cache所在的位置。首先贴源码: cache_t在结构体ob...
同isa一样从源码入手,首先从源码中找到类Class的定义和结构 继续找objc_class cache_t class_rw_t 找const class_ro_t *ro...
一、isa的初始化 首先从源码中找到类Class的定义和结构 继续找objc_class 继续找objc_object 会发现isa的类型是isa_t,isa_t源码,如下:...
内存对齐之前需要掌握的一张图 内存对齐的目的 对于程序而言,一个变量的数据存储范围是在一个寻址步长范围内的话,这样一次寻址就可以读取到变量的值,如果是超出了步长范围内的数据存...
过去,薛之谦在《火星情报局》有个口头禅“整段垮掉”。 现在这个口头禅应该可以升级一下了。 “整期垮掉”了解一下。 垮掉的正是它—— 《火星情报局4》 (以下简称《火星4》) ...
前言 当用户按下home键的时候,iOS的App并不会马上被kill掉,还会继续存活若干时间。理想情况下,用户点击App的图标再次回来的时候,App几乎不需要做什么,就可以还...