使用runtime给button添加类目遇到的坑

使用runtime给button添加类目遇到的坑_第1张图片
图片发自App

给button扩展类目, 在类目里面使用runtime关联一个对象, 绑定button的点击事件, 当button被点击时, 使用block把button传出来,  UIButton+TouchUpInsideBlock是我写的, 我需要把button传出来以便使用, UIButton+Block, 是我同事写的, 同事在回调的时候没有把button传出来.

遇到的坑是, 本来我是在另外一个工程中用到了UIButton+TouchUpInsideBlock, 没有任何问题, 但是当我把这个类放到含有UIButton+Block类的工程里, 我的block回调就失效了. 真的让我很郁闷, 经过自己多次试验, 终于发现是因为我在UIButton+TouchUpInsideBlock, 给button绑定的方法名和UIButton+Block类里button绑定的发放名一样, 就是在UIButton+TouchUpInsideBlock.m文件有个callTouchUpInsideEvent:方法, 如果把这个方法名写成callActionBlock:和UIButton+Block.m文件中的callActionBlock:一样的方法名, UIButton+TouchUpInsideBlock里面的函数回调就会失效. 这两个选择器的名字不能一样.

但是问题来了,既然选择器方法名称一样会导致方法注册失败, 但为什么是UIButton+TouchUpInsideBlock里的方法失效, 而不是UIButton+Block类里的方法失效, 在多个工程里面试验, 效果都一样?

使用runtime给button添加类目遇到的坑_第2张图片
使用runtime给button添加类目遇到的坑_第3张图片


使用runtime给button添加类目遇到的坑_第4张图片
使用runtime给button添加类目遇到的坑_第5张图片

你可能感兴趣的:(使用runtime给button添加类目遇到的坑)