Runtime学习

2018-11-05  本文已影响0人  空山和新雨

所谓runtime即运行时, 由于objectiveC语言有消息机制, 在调用方法时,会发送一条消息到指定地址,此时用runtime就可以实现很多黑魔法的操作。

这里用User类举例

@interface User : NSObject

@property (nontamic, copy) NSString *name;

@property (nontamic, copy) NSString *number;

@end

unsigned int count; 

获取类名 const char * class_getName(Class cls);

获取父类 Class class_getSuperclass(Class cls)

判断一个类是不是元类 BOOL class_isMetaClass(Class cls)  (这里稍微解释下元类, OC里实例对象的isa指向类的对象,类对象的isa指针指向元类,元类的isa指向根元类,元类包含类对象的类方法列表)

获取实例大小 size_t class_getInstanceSize (Class cls)

获取类中置顶名称实例成员变量的信息 Ivar class_getClassVariable (Class cls, const char *name)

获取类成员变量

上一篇 下一篇

猜你喜欢

热点阅读