Runtime的使用4 【获取属性和方法(包括私有)】

来源:互联网 发布:qq群刷屏软件 编辑:程序博客网 时间:2024/05/24 07:22

UIPageControl为例子。得到这个class所有的属性和所有的方法。


#pragma mark - 获取所有的属性(包括私有的)- (void)getAllIvar {    unsigned int count = 0;    //Ivar:定义对象的实例变量,包括类型和名字。    //获取所有的属性(包括私有的)    Ivar *ivars= class_copyIvarList([UIPageControl class], &count);    for (int i = 0; i < count; i++) {        //取出成员变量        Ivar ivar = ivars[i];                NSString *name = [NSString stringWithUTF8String:ivar_getName(ivar)];        NSString *type = [NSString stringWithUTF8String:ivar_getTypeEncoding(ivar)];        NSLog(@"属性 --> %@ 和 %@",name,type);            }    }
#pragma mark - 获取所有的方法(包括私有的)- (void)getAllMethod {    unsigned int count = 0;    //获取所有的方法(包括私有的)    Method *memberFuncs = class_copyMethodList([UIPageControl class], &count);    for (int i = 0; i < count; i++) {                SEL address = method_getName(memberFuncs[i]);        NSString *methodName = [NSString stringWithCString:sel_getName(address) encoding:NSUTF8StringEncoding];                NSLog(@"方法 : %@",methodName);    }    }




阅读全文
0 0
原创粉丝点击