参考博客:
https://blog.csdn.net/u010828718/article/details/51460398
思路:就是把一个key和一个对象关联起来,然后调用get方法时就把关联的值给返回,调用set方法时就把关联的值给重置。从而达到和属性同样的效果。
set方法的重写:
/**
* 关联你需要关联的对象
*
*@paramobject 调用我的类,常见的是self
* @paramkey 一个关联的key值。有点类似,字典的key和广播的Name
* @paramvalue 关联的对象 特别:设置成nil,则表示删除该对象的某一个扩展属性 * @parampolicy 关联的方式 OBJC_ASSOCIATION_RETAIN_NONATOMIC 等
*/
objc_setAssociatedObject(id object, const void *key, id value, objc_AssociationPolicy policy)
get方法的重写:
/**
* 获取关联的对象
*
* @paramobject 调用我的类,常见的是self
* @paramkey 一个关联的key值。有点类似,字典的key和广播的Name
*/
objc_getAssociatedObject(id object, void *key)