iOS高级进阶

Runtime底层解析 - 常用API

2019-11-11  本文已影响0人  南城同學
传送门: Runtime的几个常规应用

类相关:
  1. 动态创建一个类(参数:父类,类名,额外的内存空间)
 // 创建类
 Class newClass = objc_allocateClassPair([NSObject class], "Dog", 0);
  1. 注册一个类(要在类注册之前添加成员变量)
  1. 销毁一个类
  1. 获取isa指向的Class
  1. 设置isa指向的Class
  1. 判断一个OC对象是否为Class
  1. 判断一个Class是否为元类
  1. 获取父类

成员变量相关
  1. 获取一个实例变量信息
  1. 拷贝实例变量列表(最后需要调用free释放)
  1. 设置和获取成员变量的值
  1. 动态添加成员变量(已经注册的类是不能动态添加成员变量的)
 class_addIvar(newClass, "_age", 4, 1, @encode(int));
  1. 获取成员变量的相关信息

属性相关
  1. 获取一个属性
  1. 拷贝属性列表(最后需要调用free释放)
  1. 动态添加属性
  1. 动态替换属性
  1. 获取属性的一些信息

方法相关
  1. 获得一个实例方法、类方法
  1. 方法实现相关操作
  1. 拷贝方法列表(最后需要调用free释放)
  1. 动态添加方法
 class_addMethod(newClass, @selector(run), (IMP)run, "v@:");
  1. 动态替换方法
  1. 获取方法的相关信息(带有copy的需要调用free去释放)
  1. 选择器相关
  1. 用block作为方法实现

上一篇 下一篇

猜你喜欢

热点阅读