class_copyPropertyList:
通过类名获得类的属性变量。
class_copyIvarList
通过类名获得类的 实例 变量 。也就是说:
class_copyPropertyList获得的是由@property修饰过的变量,
class_copyIvarList获得的是class_copyPropertyList修饰的以及在m文件的中@implementation内定义的变量
eg:
//.h
@interface Model : NSObject
@property (nonatomic,copy) NSString *sex;
@property (nonatomic,copy) NSString *name;
@property (nonatomic,assign) NSInteger age;
@property (nonatomic,strong) NSDictionary *imgCode;
@end
//.m
@interface Model ()
@property (nonatomic,copy) NSString *Id;
@end
@implementation Model {
NSInteger _index;
}
@end
//使用的时候
unsigned int propertiesCount =0;
unsigned int ivarsCount =0;
objc_property_t *properties = class_copyPropertyList(Model, &propertiesCount);
Ivar *ivars = class_copyIvarList(Model, &ivarsCount);
则 propertiesCount = 5 ivarsCount = 6