美文网首页iOS基础·OC高级篇iOS
iOS知识复习笔记(3)---关联对象

iOS知识复习笔记(3)---关联对象

作者: 焦下客 | 来源:发表于2023-01-09 13:33 被阅读0次

    关联对象其实是通过初始化一个AssociationsManager 来对全局唯一的哈希链表AssociationsHashMap进行管理关系对象,结构为:

    { object1:{key1:value1,ke2:value2,.....},
    
    object2:{key1:value1,ke2:value2,.....},
    
    .......
    
    }
    

    如果设置的value值为nil,那么会清除hashMap里面对应的值

    在关系对象dealloc释放的时候也会同时释放关系属性,这里会先判断该对象是否有标记过关联对象,通过isTaggedPointer() 里面的uintptr_t has_assoc: 1 位来标记.

    在manager构建的时候会加lock ,在manager析构的时候会unlock 来保证对map的线程安全访问。具体关系如下图: 1635a628a228e349_tplv-t2oaga2asx-zoom-in-crop-mark_4536_0_0_0.png

    相关文章

      网友评论

        本文标题:iOS知识复习笔记(3)---关联对象

        本文链接:https://www.haomeiwen.com/subject/lzwpcdtx.html