// 判断给定的Class是否是一个元类
NSObject *object = [[NSObject alloc] init];
Class class = [NSObject class];
BOOL yup = class_isMetaClass(object_getClass(class));
BOOL nope = class_isMetaClass(object_getClass(object));
// 获取类的父类
Class cls = class_getSuperclass([UIView class]);//打印结果: UIResponder
//获取一个类的大小?
size_t sss = class_getInstanceSize([UIView class]);
unsigned int outCount = 0;
// 获取一个类的属性
Ivar *ivars = class_copyIvarList([NSString class], &outCount);
for (int i = 0; i < outCount; i++) {
Ivar _var = *(ivars + i);
NSLog(@"%s",ivar_getTypeEncoding(_var));
NSLog(@"%s",ivar_getName(_var));
}
// 获取一个类的所有方法,返回一个数组
u_int count;
Method *methods = class_copyMethodList([UIView class], &count);
for (int i = 0; i < count ; i++)
{
SEL name = method_getName(methods[i]);
NSString *strName = [NSString stringWithCString:sel_getName(name) encoding:NSUTF8StringEncoding];
NSLog(@">>%@<<",strName);
}
Objective-C的Runtime特性
最新推荐文章于 2024-08-15 11:35:12 发布