由于最近在学习runtime相关知识,用到了class_copyIvarList方法,所以测试了一下class_copyIvarList 与 class_copyMethodList用法
unsigned int ivarCount = 0;
unsigned int methodCount = 0;
Ivar * ivars = class_copyIvarList([Person class], &ivarCount);
Method * methods = class_copyMethodList([Person class], &methodCount);
for (int i=0; i<ivarCount; i++) {
Ivar var = ivars[i];
const char * name = ivar_getName(var);
NSLog(@"-------------属性为:%s",name);
}
for(int i=0;i<methodCount ;i++)
{
Method method = methods[i];
SEL methodsel = method_getName(method);
const char * name = sel_getName(methodsel);
NSLog(@"----------------方法为:%s",name);
}
本文通过实例演示了如何使用class_copyIvarList与class_copyMethodList方法来获取Objective-C类的属性和方法列表,深入介绍了Runtime机制的应用。

被折叠的 条评论
为什么被折叠?



