美文网首页
【iOS-RunTime系列四】消息转发

【iOS-RunTime系列四】消息转发

作者: GeniusWong | 来源:发表于2018-09-21 02:26 被阅读9次
  • 什么时候才用到消息转发呢?

  NSMutablearray *array = @[@1, @2];
  [array addObject:@"222"];

这时候会报错, 别人传过来的数组是否是可变,不知道啊。这样会Crash。这种情况可以使用消息转发来解决。

- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
{
    if ([aSelector respondsToSelector:aSelector]) {
        return [super methodSignatureForSelector:aSelector];
    }
    return [NSMethodSignature signatureWithObjCTypes:"v@:"];;
}

- (void)forwardInvocation:(NSInvocation *)anInvocation
{
     NSStringFromSelector(anInvocation.selector);
// 我可以拿到那个未找到的方法,收集起来告诉后台。
}

还上面,这种我们可以知道哪个方法没有实现,收集一下这个信息到后台,再告诉程序员。

相关文章

  • 【iOS-RunTime系列四】消息转发

    什么时候才用到消息转发呢? 这时候会报错, 别人传过来的数组是否是可变,不知道啊。这样会Crash。这种情况可以使...

  • Runtime系列(消息转发)

    前言 一个方法的声明必定会有与之对应的实现,如果调用了只有声明没有实现的方法会导致程序crash,而实现并非只有中...

  • Runtime系列之消息转发

    Runtime系列之消息转发 1 消息传递 OC属于动态类型语言,方法的调用是通过发送消息来完成的。objc/ru...

  • iOS 消息转发机制

    消息转发(Message Forwarding)是在查找 IMP 失败后执行一系列转发流程的慢速通道,如果不作转发...

  • 壹、面试复习OC篇之runtime

    暂时copy过来,过后添加自己理解 原文地址:iOS-runtime通篇详解-上 iOS-runtime通篇详解-...

  • Runtime系列4--消息转发

    消息转发原理 简单来说,就是在Objective-C中,使用对象进行方法调用是一个消息发送的过程(Objectiv...

  • Runtime消息转发

    消息转发是在查找IMP失败后执行一系列转发流程。 ①动态方法解析: 对象在收到无法解读的消息之后,首先将调用所属类...

  • Runtime

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

  • 消息转发机制(动态消息转发)

    例子分析 1)在给程序添加消息转发功能以前,必须覆盖两个方法,即methodSignatureForSelecto...

  • Runtime 消息转发

    目录 消息转发背景知识 消息转发使用方式 消息转发常见问题 消息转发背景知识 1.消息转发的定义Objective...

网友评论

      本文标题:【iOS-RunTime系列四】消息转发

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