runtime取内部成员变量,属性,方法

示例代码

#import <objc/runtime.h>

unsigned int count = 0;

// 拷贝出所有的成员变量列表
Ivar *ivars = class_copyIvarList([UIDatePicker class], &count);

for (int i = 0; i<count; i++) {
    // 取出成员变量
    // Ivar ivar = *(ivars + i);
    Ivar ivar = ivars[i];
    
    // 打印成员变量名字
    NSLog(@"%s", ivar_getName(ivar));
}

// 释放
free(ivars);

// 拷贝出所有的属性列表
objc_property_t *propertys = class_copyPropertyList([UIDatePicker class], &count);

for (int i = 0; i<count; i++) {
    // 取出成员变量
    objc_property_t property = propertys[i];
    
    // 打印成员变量名字
    NSLog(@"%s", property_getName(property));
}

// 释放
free(propertys);

// 拷贝出所有的方法列表
Method *methods = class_copyMethodList([UIDatePicker class], &count);

for (int i = 0; i<count; i++) {
    // 取出成员变量
    Method method = methods[i];
    
    // 打印成员变量名字
    NSLog(@"%@", NSStringFromSelector(method_getName(method)));
}

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

相关阅读更多精彩内容

友情链接更多精彩内容