关联对象(防止自己忘记记录)

296 阅读1分钟
/*
    以给定的键和策略为某对象设置关联对象值
    <#id  _Nonnull object#>:被绑定的对象
    <#const void * _Nonnull key#>:key
    <#id  _Nullable value#>:被绑定者
    <#objc_AssociationPolicy policy#>:属性协议(关联时采用的协议<assign,retain,copy等>)
*/
objc_setAssociatedObject(<#id  _Nonnull object#>, <#const void * _Nonnull key#>, <#id  _Nullable value#>, <#objc_AssociationPolicy policy#>)

/*
    调用方法:通过key值获取被绑定者
*/
objc_getAssociatedObject(<#id  _Nonnull object#>, <#const void * _Nonnull key#>)

/*
    解除绑定
*/
  objc_removeAssociatedObjects(<#id  _Nonnull object#>)