objc变量的获取

objc变量的获取

  C++成员变量通过偏移来寻找,速度极快。But Objc中的变量通过方法调用来寻找,方法首先根据变量名,找到ivar_t,然后在ivar_t对象中取出偏移,再用此偏移来取值(这最后一步和C++一样)。ivar_t类结构如下:

  

  objc-runtime中的object_getInstanceVariable方法如下:  

  

   object_getInstanceVariable只是提供通过ivar_list来获取偏移的渠道,在ios代码中,对一个变量的访问,编译器最终还是会通过偏移来解决。

原文地址:https://www.cnblogs.com/tekkaman/p/3753647.html