关联对象实现原理

2019-02-16  本文已影响2人  iLeooooo
实现关联对象的核心对象有:
objc4源码解读:objc-references.mm
class AssociationsManager {
    // associative references: object pointer -> PtrPtrHashMap.
    static AssociationsHashMap *_map;
}
class AssociationsHashMap : public unordered_map<disguised_ptr_t, ObjectAssociationMap>
class ObjectAssociationMap : public std::map<void *, ObjcAssociation>
class ObjcAssociation {
        uintptr_t _policy;
        id _value;
}
存放结构

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

上一篇 下一篇

猜你喜欢

热点阅读