美文网首页
5种常见的消息传递机制及其区别

5种常见的消息传递机制及其区别

作者: 是超超呀 | 来源:发表于2021-04-25 10:42 被阅读0次

    常见的消息传递方法有以下5种

    第一种:KVO对象属性改变时的通知机制,当对象的某个属性发生变化,进行某项操作的时候,就可以使用KVO的消息传递。使用KVO的前提:消息的观察者需要知道谁是消息的发送者;观察者需要知道发送者的生命周期,因为KVO不会对self进行强引用,如果观察者的生命周期结束了,self被释放,所以添加的监听需要被移除。

    第二种:通知机制广播消息,要在两个不相关的模块进行消息传递时,可以使用通知,不需要知道发送者是哪个,同时通知可以发送任何的消息,但是通知的消息传递是单向的,我们不能回复一个通知。

    第三种:Target-Action:是UI事件的消息传递方式,target-Action 在消息的发送者和接收者之间建立了一个关系。消息的接收者和发送者互不知道对方。如果 target 是 nil,action 会在响应链中被传递下去,直到找到一个响应它的对象。在 iOS 中,每个控件甚至可以和多个 target-action 关联。但是发送的消息不能携带自定义的信息。

    第四种:Block 通常可以完全替代 delegation 消息传递机制的角色,不过使用block要注意避免出现循环引用。

    第五种:delegate 发送者需要知道接受者是哪个,代理可以自定义任何的方法,按照自己的需求传递信息,可以用方法参数来传递消息内容,delegate 可以通过返回值的形式来给发送者作出回应。

    ObjC 中国 - 消息传递机制

    相关文章

      网友评论

          本文标题:5种常见的消息传递机制及其区别

          本文链接:https://www.haomeiwen.com/subject/kyfdrltx.html