美文网首页
iOS-Runtime常用的API

iOS-Runtime常用的API

作者: 那些喧嚣 | 来源:发表于2020-03-20 12:14 被阅读0次

Runtime的相关API在苹果开发者中心有介绍,这里只是简单做一些笔记,抽取一些可能比较常用的,便于记忆runtime苹果官方文档

1. objc_xxx系列API

  • objc_msgSend: 发送ObjC消息,消息机制的起点
  • objc_getClass: 获取Class对象
  • objc_getMetaClass: 获取元类(MetaClass)对象
  • objc_allocateClassPair: 分配控件,创建类
  • objc_registerClassPair: 注册一个类
  • objc_disposeClassPair: 注销某个类
  • objc_allocateProtocol: 给注册协议开辟空间
  • objc_registerProtocol: 注册一个协议
  • objc_setAssociatedObject: 为实例对象关联对象
  • objc_getAssociateObje*ct: 获取实例对象的关联对象
  • objc_removeAssociateObjects: 清空实例对象的所有关联对象

2.object_xxx系列API

  • object_getClassName: 获取对象的类名
  • object_getClass: 获取对象的Class(和objc_getClass要区分开)
  • object_setClass: 设置对象的Class
  • object_getIvar: 获取对象中实例变量的值
  • object_setIvar: 设置对象中实例变量的值

3.ivar_xxx系列API

  • ivar_getName: 获取Ivar名称
  • ivar_getTypeEncoding: 获取类型编码
  • ivar_getOffset: 获取偏移量

4.sel_xxx系列API

  • sel_getName: 获取方法名称
  • sel_registerName: 注册方法
  • sel_isEqual: 判断方法是否相等

5.imp_xxx系列API

  • imp_getBlock: 获取函数指针中的代码块
  • imp_removeBlock: 移除IMP中的代码块

6.method_xxx系列API

  • method_getName: 获取方法名
  • method_getImplementation: 获取方法的实现
  • method_getTypeEncoding: 获取方法的类型编码
  • method_getNumberOfArguments: 获取方法的参数个数
  • method_copyReturnType: 拷贝方法的返回类型
  • method_getReturnType: 获取方法的返回类型
  • method_copyArgumentType: 拷贝方法的参数类型
  • method_getArgumentType: 获取方法的参数类型
  • method_getDescription: 获取方法的描述
  • method_setImplementation: 设置方法的实现
  • method_exchangeImplementations: 替换方法的实现(常用的那个黑魔法)

7.property_XXX系列API

  • property_getName: 获取属性名
  • property_getAttributes: 获取属性的特性列表
  • property_copyAttributeList: 拷贝属性的特性列表
  • property_copyAttributeValue: 拷贝属性中某特性的值

8.protocol_xxx 系列API

  • protocol_isEqual: 判断两个协议是否一致
  • protocol_getName: 获取协议名称
  • protocol_conformsToProtocol:判断协议A是否遵循协议B
  • protocol_copyPropertyList:拷贝协议列表
  • protocol_copyProtocolList: 拷贝某协议所遵循的协议列表
  • protocol_copyMethodDescriptionList: 拷贝协议的方法列表
  • protocol_addProtocol: 为一个协议遵循另一个协议
  • protocol_addProperty: 为协议添加属性
  • protocol_getProperty: 获取协议中的某个属性

相关文章

网友评论

      本文标题:iOS-Runtime常用的API

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