通过runtime获取一个类的所有方法,变量,属性

    u_int count =0;

    Ivar *ivars = class_copyIvarList([NSNotificationCenter class], &count);

    for(int i =0; i < count; i++) {

        Ivar ivar = ivars[i];

        NSLog(@"第%d个成员变量%s", i, ivar_getName(ivar));

    }


    u_int count1 =0;

    objc_property_t *ts = class_copyPropertyList([Persion class], &count1);

    for(int i =0; i < count1; i++) {

        objc_property_t p = ts[i];

        NSLog(@"第%d个属性%s", i, property_getName(p));

    }

当一个类里边的属性使用class修饰的时候是无法获取到任何数据的  如:

@property (class, nonatomic, strong) NSString *age;

此时就无法获取到age属性, 也无法获取到get,set方法


    u_int count2 =0;

    Method *ms = class_copyMethodList([NSNotificationCenter class], &count2);

    for(int i =0; i < count2; i++) {

        Method m = ms[i];

        NSLog(@"第%d个方法%s", i, method_getName(m));

    }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容