iOS--关联对象

2021-06-13  本文已影响0人  mayuee

添加关联对象
objc_setAssociatedObject(id _Nonnull object, const void * _Nonnull key, id _Nullable value, objc_AssociationPolicy policy)

获取关联对象
objc_getAssociatedObject(id _Nonnull object, <const void * _Nonnull key)

移除关联对象
objc_removeAssociatedObjects(id _Nonnull object)

当想要撤销或者删除一个已经关联到对象的值的时候,objc_setAssociatedObject中的value传nil也可以,因为当value=nil时是erase擦除操作。
关联对象由AssociationsManager统一管理,所有对象的关联内容放在同一个全局容器哈希表 AssociationsHashMap 中。

关联对象的原理
上一篇下一篇

猜你喜欢

热点阅读