objc runtime之association

objc runtime之association

 1、objc runtime association函数有3个,功能是给某个instance添加额外的key-value。

  

 2、在objc runtime的实现中,采用monostate模式实现了一具全局association表,用于记录每一个对象所对应的key-value表。

  

 3、AssociationManager中存留着disguise(obj_ptr) -> AssociationHashMap,此map记录着此obj_ptr所有的key->value。参考:

  

 4、在3中可以看到,给某Class的instance添加association,会把Class的flag置为CLS_INSTANCES_HAVE_ASSOCIATED_OBJECTS。

  

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