关于响应链的问题自我简单理解

来源:互联网 发布:网络学历 编辑:程序博客网 时间:2024/06/03 14:06

首先引用这位作者的文章,感谢!

http://www.mamicode.com/info-detail-399896.html

上文已经对响应链问题做了很好的陈述。

当事件发生时,会根据响应链的顺序,从底层依次向上发送消息,一旦中间某层实现了响应方法,则不再向上传递。

在各个公司的面试题中,响应链问题基本上也是必须要问的,并且很多时候都会问到关于UIButton的响应链问题。

比如,让你实现点击Button时,让他的上一个响应者相应事件。

这个问题答案非常简单,直接通过sender.nextResponder去找到他的上一个响应者,让他的上一个响应者去执行方法即可。

if ([sender.nextResponderrespondsToSelector:@selector(callBack)]) {

        [sender.nextResponderperformSelector:@selector(callBack)];

    }

如上所示,然后在他的上一个响应者中实现这个方法即可。当然如果UIButton本身实现了触摸响应链方法的话,那么button的点击事件是兼听不到的。可以在触摸方法里去调用。
0 0