objc_setAssociatedObject 与 objc_getAssociatedObject 探究

在一篇简书中看到作者使用了objc_setAssociatedObject来为button添加响应block ,所以摘出来研究一下。

首先介绍一下objc_setAssociatedObject这个方法,
这个方法是Objective-C的运行时函数,用来把一个对象与另一个对象进行关联。
既然说了它是运行时函数,用到它的地方就要:

//#import <objc/runtime.h>头文件 这个不用解释了吧.

objc_setAssociatedObject一共需要四个参数,分别是源对象,关键字,关联的对象和一个关联策略
解释一下

源对象和关联对象就是需要进行关联的两个对象,而 关键字是一个void类型的指针。每一个关联的关键字必须是唯一的。通常都是会采用静态变量来作为关键字;关联策略呢,是个枚举,用来表示两个对象的关联程度,具体效果大家自己可以实验一下。

而objc_getAssociatedObject是和objc_setAssociatedObject配套使用的,它是获取相关联的对象时使用的,
objc_getAssociatedObject两个参数源对象于关键字,注意关键字唯一且一致。

就拿上面那个兄弟的button举个例子: 分别是.h与.m以及使用


屏幕快照 2016-06-16 下午4.41.21.png
屏幕快照 2016-06-16 下午4.41.11.png
屏幕快照 2016-06-16 下午4.42.52.png

这样大家就可以很好的理解和使用了,下面是提供代码兄弟的简书地址,大家有兴趣研究的,可以去看一下哦,谢谢大家的支持!

//www.greatytc.com/users/83b2eba88a0d/latest_articles

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容