美文网首页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)---关联对象

    关联对象其实是通过初始化一个AssociationsManager 来对全局唯一的哈希链表Associations...

  • iOS关联对象技术原理

    iOS关联对象技术原理 iOS关联对象技术原理

  • iOS 关联对象笔记

    方法 三个方法的作用分别是: 以键值对形式添加关联对象 根据 key 获取关联对象 移除所有关联对象 例子 下面A...

  • iOS底层原理总结 - 关联对象实现原理

    iOS底层原理总结 - 关联对象实现原理 iOS底层原理总结 - 关联对象实现原理

  • iOS Objective-C 关联对象

    iOS Objective-C 关联对象 1. 关联对象简介 对于关联对象,我们熟悉它的地方就是给分类添加属性。虽...

  • iOS对象关联

    什么是关联对象 关联对象是指某个OC对象通过一个唯一的key连接到一个类的实例上。 举个例子:xiaoming是P...

  • iOS:关联对象

    目录一,添加属性二,基本知识三,底层原理四,注意点 一,添加属性 1,在类中添加属性,系统会自动生成带下划线的成员...

  • iOS 关联对象

    在平时的工作中经常碰到给类别添加属性的操作,那么实现思路是怎么样的呢? 代码实现:新建一个Person类和Pers...

  • iOS 关联对象

    可以不改变源码的情况下增加实例变量。可与分类配合使用,为分类增加属性。(类别是不能添加成员变量的(property...

  • iOS 关联对象

    关联对象简单的说就是运用oc语言的运行时特性(runtime),给类别加属性(当然不止加属性).正常的类中创建一个...

网友评论

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

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