【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。