Tekkaman

导航

 

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。

  

posted on 2013-05-01 14:41  Tekkaman  阅读(221)  评论(0编辑  收藏  举报