一、objc_xxx系列函数
objc_系列函数关注于宏观使用,如类与协议的空间分配,注册,注销等操作
名称 |
作用 |
objc_getClass |
获取Class对象 |
objc_getMetaClass |
获取MetaClass对象 |
objc_allocateClassPair |
分配空间,创建类(仅在 创建之后,注册之前 能够添加成员变量) |
objc_registerClassPair |
注册一个类(注册后方可使用该类创建对象) |
objc_disposeClassPair |
注销某个类 |
objc_allocateProtocol |
开辟空间创建协议 |
objc_registerProtocol |
注册一个协议 |
objc_constructInstance |
构造一个实例对象(ARC下无效) |
objc_destructInstance |
析构一个实例对象(ARC下无效) |
objc_setAssociatedObject |
为实例对象关联对象 |
objc_getAssociatedObje*ct |
获取实例对象的关联对象 |
objc_removeAssociatedObjects |
清空实例对象的所有关联对象 |
二、class_xxx 系列函数
class_系列函数关注于类的内部,如实例变量,属性,方法,协议等相关问题
名称 |
作用 |
class_addIvar |
为类添加实例变量 |
class_addProperty |
为类添加属性 |
class_addMethod |
为类添加方法 |
class_addProtocol |
为类遵循协议 |
class_replaceMethod |
替换类某方法的实现 |
class_getName |
获取类名 |
class_isMetaClass |
判断是否为元类 |
objc_getProtocol |
获取某个协议 |
objc_copyProtocolList |
拷贝在运行时中注册过的协议列表 |
class_getSuperclass |
获取某类的父类 |
class_setSuperclass |
设置某类的父类 |
class_getProperty |
获取某类的属性 |
class_getInstanceVariable |
获取实例变量 |
class_getClassVariable |
获取类变量 |
class_getInstanceMethod |
获取实例方法 |
class_getClassMethod |
获取类方法 |
class_getMethodImplementation |
获取方法的实现 |
class_getInstanceSize |
获取类的实例的大小 |
class_respondsToSelector |
判断类是否实现某方法 |
class_conformsToProtocol |
判断类是否遵循某协议 |
class_createInstance |
创建类的实例 |
class_copyIvarList |
拷贝类的实例变量列表 |
class_copyMethodList |
拷贝类的方法列表 |
class_copyProtocolList |
拷贝类遵循的协议列表 |
class_copyPropertyList |
拷贝类的属性列表 |
三、object_xxx 系列函数
objcet_系列函数关注于对象的角度,如实例变量
名称 |
作用 |
object_copy |
对象copy(ARC无效) |
object_dispose |
对象释放(ARC无效) |
object_getClassName |
获取对象的类名 |
object_getClass |
获取对象的Class |
object_setClass |
设置对象的Class |
object_getIvar |
获取对象中实例变量的值 |
object_setIvar |
设置对象中实例变量的值 |
object_getInstanceVariable |
获取对象中实例变量的值 (ARC中无效,使用object_getIvar) |
object_setInstanceVariable |
设置对象中实例变量的值 (ARC中无效,使用object_setIvar) |
四、method_xxx系列函数
method_系列函数关注于方法内部,如果方法的参数及返回值类型和方法的实现
名称 |
作用 |
method_getName |
获取方法名 |
method_getImplementation |
获取方法的实现 |
method_getTypeEncoding |
获取方法的类型编码 |
method_getNumberOfArguments |
获取方法的参数个数 |
method_copyReturnType |
拷贝方法的返回类型 |
method_getReturnType |
获取方法的返回类型 |
method_copyArgumentType |
拷贝方法的参数类型 |
method_getArgumentType |
获取方法的参数类型 |
method_getDescription |
获取方法的描述 |
method_setImplementation |
设置方法的实现 |
method_exchangeImplementations |
替换方法的实现 |
五、property_xxx系列函数
property_系列函数关注与属性*内部,如属性的特性等
名称 |
作用 |
property_getName |
获取属性名 |
property_getAttributes |
获取属性的特性列表 |
property_copyAttributeList |
拷贝属性的特性列表 |
property_copyAttributeValue |
拷贝属性中某特性的值 |
六、protocol_xxx系列函数
名称 |
作用 |
protocol_conformsToProtocol |
判断一个协议是否遵循另一个协议 |
protocol_isEqual |
判断两个协议是否一致 |
protocol_getName |
获取协议名称 |
protocol_copyPropertyList |
拷贝协议的属性列表 |
protocol_copyProtocolList |
拷贝某协议所遵循的协议列表 |
protocol_copyMethodDescriptionList |
拷贝协议的方法列表 |
protocol_addProtocol |
为一个协议遵循另一协议 |
protocol_addProperty |
为协议添加属性 |
protocol_getProperty |
获取协议中的某个属性 |
protocol_addMethodDescription |
为协议添加方法描述 |
protocol_getMethodDescription |
获取协议中某方法的描述 |
七、ivar_xxx系列函数
名称 |
作用 |
ivar_getName |
获取Ivar名称 |
ivar_getTypeEncoding |
获取类型编码 |
ivar_getOffset |
获取偏移量 |
八、sel_xxx系列函数
名称 |
作用 |
sel_getName |
获取名称 |
sel_getUid |
注册方法 |
sel_registerName |
注册方法 |
sel_isEqual |
判断方法是否相等 |
九、imp_xxx系列函数
名称 |
作用 |
imp_implementationWithBlock |
通过代码块创建IMP |
imp_getBlock |
获取函数指针中的代码块 |
imp_removeBlock |
移除IMP中的代码块 |
网友评论