runTime之--交换方法

Xcode配置:

  1. 让底层方法有提示


    runTime之--交换方法_第1张图片
    严格检查消息发送
  2. 导入#import

      包含
      #include 
      #include 
    

原理

  1. 将方法名注册,得到方法编号
  2. 用方法编号去方法列表List中查找,找到方法的实现地址
  3. 用方法地址和方法区中的方法实现是一一对应的


    runTime之--交换方法_第2张图片
    交换方法

实现步骤

  1. 在load方法中进行方法交换
  2. 自定义方法


    runTime之--交换方法_第3张图片
    实现
  1. 付Swift中没有load方法,所以在initialize方法进行交换


    runTime之--交换方法_第4张图片
    Swift

程序五大区

  1. 静态区
  2. 常量区
  3. 方法区

微云网盘:
交换方法demo

你可能感兴趣的:(runTime之--交换方法)