菜鸟菜鸟继续路过~ 前俩天做一个对于我这个菜鸟来说一个很复杂的东西,当然有个大神研究到凌晨一点半也没研究出来,哈哈哈。
中间逻辑特别特别纠结一个事,而后想用button传多个参数过去,百度无果,大多都是问的,没有找到理想的答案,除了tag貌似别无他法。 不过最后再找啊找找啊找,终于找到了一个方法,非原创,分享一下。
首先导入: #import <objc/runtime.h>
向以上方法那样,只要设置了关联,当把button传递给@selector的参数时,也顺便把另外两个参数也传递过去了。就类似设了button的两个属性,但是这种方法简单多了直接上代码。 PS:我也是网上查的,求轻喷。
打印的值:
以下是我百度到的原文给的解释:
第一步: 设定关联
objc_setAssociatedObject(button,"firstObject",someObject, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
第一个参数:button为被关联者(主体),第二个参数:firstObject为指向关联的对象的指针(一般为一个static字符串),第三个参数:关联的对象实例,第四个对象:关联的方式(有几种,类似设定.h文件属性时候的 assign,retain等)
第二步:得到关联的对象
id first = objc_getAssociatedObject(button, "firstObject");
第一个参数:为被关联者
第二个参数:为关联对象的指针。
感谢某技术交流群群主指教。 这个功能用到的就是传言中的runtime,那群主的话是这样的说的:“所有都可以 不只是button”。 另外给我发了一张图,给大家瞅瞅。。(方法第一个参数是id类型,然后我发现了,真的不止是button可用~)。
网友评论