关联对象实现原理

实现关联对象的核心对象有:
  • AssociationsManager
  • AssociationsHashMap
  • ObjectAssociationMap
  • ObjcAssociation
objc4源码解读:objc-references.mm
class AssociationsManager {
    // associative references: object pointer -> PtrPtrHashMap.
    static AssociationsHashMap *_map;
}
class AssociationsHashMap : public unordered_map
class ObjectAssociationMap : public std::map
class ObjcAssociation {
        uintptr_t _policy;
        id _value;
}
关联对象实现原理_第1张图片
存放结构

注意:如果object对象没有对象引用了,被系统移除了,那么跟object对象一起关联的对象都会被移除。

你可能感兴趣的:(关联对象实现原理)