美文网首页iOS开发
【iOS】消息传递机制和消息转发机制

【iOS】消息传递机制和消息转发机制

作者: an_Anthony | 来源:发表于2019-04-23 23:35 被阅读0次

在Objective-C中,方法的调用理解为对象接受消息。

运行时调用的方法告诉对象要干什么,给对象传递一个消息。发送消息后,编译器将其转换为对应的一条C语言消息发送原语

void objc_msgSend( id self , SEL cmd , ... )

第一个参数代表消息的接收者,第二个参数代表消息选择子。

objc_msgSend通过接收者的isa指针在接收者类对象的方法列表中找,名称为选择子的方法。找到则执行,否则就到父类中查找,都找不到说明接收者无法响应改消息,触发消息转发机制。

消息转发机制有三道防线,任何一道起作用都可以传递消息。按照先后顺序依次为:

1、动态补加方法

+ (BOOL)resolveInstanceMethod:(SEL)sel

+ (BOOL)resolveClassMethod:(SEL)sel

2、直接返回消息给另一个对象处理

- (id)forwardingTargetForSelector:(SEL)aSelector

3、手动生成签名方法并抓发给另一个对象

- (NSMethodSignature *)methodSignatureForSelector:(SEL)sSelector

- (void)forwardInvocation:(NSInvocation *)anInvocation

相关文章

  • Runtime

    相关简单介绍 消息机制消息传递机制消息转发机制-动态添加方法消息转发机制-快速转发消息转发机制-慢速转发消息转发机...

  • 【iOS】消息传递机制和消息转发机制

    在Objective-C中,方法的调用理解为对象接受消息。 运行时调用的方法告诉对象要干什么,给对象传递一个消息。...

  • iOS消息转发机制

    消息转发机制: 消息转发机制是相对于消息传递机制而言的。 1、消息(传递)机制 RunTime简称运行时。就是系统...

  • runtime系列文章总结

    《iOS Runtime详解(消息机制,类元对象,缓存机制,消息转发)》《消息转发机制与Aspects源码解析》《...

  • iOS面试题总结(二)

    iOS面试题(二) 消息发送和转发机制,SEL和IMP 消息发送转载自黄龙辉消息发送和消息转发机制 在Object...

  • iOS理解Objective-C中消息转发机制附Demo

    iOS理解Objective-C中消息转发机制附Demo iOS理解Objective-C中消息转发机制附Demo

  • IOS消息传递机制

    ios的消息传递机制分为三个阶段:消息发送阶段,动态解析阶段,消息转发阶段。 消息发送阶段: 当ios的对象调用方...

  • OC的消息传递机制和消息转发机制

    绪:静态绑定:编译时期便能确定所要调用的函数。动态绑定:运行时期才能确定所要调用的函数。 一. 消息传递机制。 1...

  • iOS面试-基础

    [toc] Runloop AutoReleasePool 多线程 响应者链 消息响应机制 消息转发机制 iOS内...

  • OC消息传递机制与消息转发机制

    oc运行机制是动态的,运行时所执行的代码是由运行环境来决定的,静态的机制是由编译器来决定的,(编译期是指把你的源程...

网友评论

    本文标题:【iOS】消息传递机制和消息转发机制

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