美文网首页
问题:Objective-C 如何对已有的方法,添加自己的功能代

问题:Objective-C 如何对已有的方法,添加自己的功能代

作者: 姜小舟 | 来源:发表于2020-08-24 09:22 被阅读0次
    • 子类继承重写父类
    • runtime方法交换method swizzling(这题目主要考察)

      先在分类中添加一个方法,注意不能重写系统方法,会覆盖.

      + (NSString *)myLog {
          # 这里写打印行号,什么方法,哪个类调用等等
      }
      #然后交换方法
      + (void)load {
          NSLog("获取description方法地址")
          Method description = class_getClassMethod(self, @selector(description));
          
          NSLog("获取myLog方法地址")
          Method myLog = class_getClassMethod(self, @selector(myLog));
          
          NSLog("交换方法地址,相当于交换实现方式")
          method_exchangeImplementations(description, myLog);
      }
      

      下回调用description方法时,实际上调用的是myLog的方法。

    相关文章

      网友评论

          本文标题:问题:Objective-C 如何对已有的方法,添加自己的功能代

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