添加关联对象
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 中。
网友评论