Runtime知识点整理2

2020-05-21  本文已影响0人  化二缺

Class结构

Class结构.png

Class_rw_t

Class_ro_t

============真特么枯燥=-=

哎=||=

method_t

  • 可以通过@selectorsel_registerName()获得
  • 可以通过sel_getName()NSStringFromSelector()转成字符串
  • 不同类中相同名字的方法,所对应的方法选择器是相同的


    image.png

v16@0:8


image.png

Type Encoding

image.png

方法缓存

为什么_mask 散列表的长度减一,因为任何数值 & _mask 都会 ≤ _mask
一旦扩容 mask就变了 所以要清空数组
那个对象调用方法,这个方法无论是来自父类还是自己都会被存储到这个对象对应的类对象的缓存里面

上一篇 下一篇

猜你喜欢

热点阅读