Runtime知识点整理5应用

2020-05-29  本文已影响0人  化二缺

主要用途

API - 类

objc_allocateClassPair(Class superclass, const char * name, size_t extraBytes)

objc_registerClassPair(Class cls)

objc_disposeClassPair(Class cls)

object_getClass(id obj)

object_setClass(id obj, Class cls)

object_isClass(id obj)

class_isMetaClass(Class cls)

class_getSuperclass(Class cls)

成员变量

class_getInstanceVariable(Class cls, const char * name)

class_copyIvarList(Class cls, unsigned int * outCount)

object_setIvar(id obj, Ivar ivar, id value)
object_getIvar(id obj, Ivar ivar)

class_addIvar(Class cls, const char * name, size_t size, uint8_t alignment, const char * types)

ivar_getName(Ivar v)
ivar_getTypeEncoding(Ivar v)
ivar_getOffset(Ivar v)

属性相关

class_getProperty(Class cls, const char * name)

class_copyPropertyList(Class cls, unsigned int * outCount)

class_addProperty(Class cls, const char * name, const objc_property_attribute_t * attributes, unsigned int attributeCount)

class_replaceProperty(Class cls, const char * name, const objc_property_attribute_t * attributes, unsigned int attributeCount)

property_getName(objc_property_t property)
property_getAttributes(objc_property_t property)

方法相关

class_getInstanceMethod(Class cls, SEL name)
class_getClassMethod(Class cls, SEL name)

class_getMethodImplementation(Class cls, SEL name)
method_setImplementation(Method m, IMP imp)
method_exchangeImplementations(Method m1, Method m2)

class_copyMethodList(Class cls, unsigned int * outCount)

class_addMethod(Class cls, SEL name, IMP imp, const char * types)

class_replaceMethod(Class cls, SEL name, IMP imp, const char * types)

method_getName(Method m)
method_getImplementation(Method m)
method_getTypeEncoding(Method m)
method_getReturnType(Method m, char * dst, size_t dst_len)
method_copyReturnType(Method m)
等等

上一篇 下一篇

猜你喜欢

热点阅读