objc_property_t * class_copyPropertyList(Class cls, unsigned int *outCount);//苹果文档获取类所有属性的接口
Class cls //要获取属性的类
unsigned int *outCount //一个指向该属性数组的一个计数指针
objc_property_t* //返回一个属性指针数组
具体实现
#import "Model.h"
#import <objc/message.h>
@implementation Model
+(instancetype)getDic:(NSDictionary*)dic{
Model * model = [[Model alloc]init];
unsigned int count = 0;
objc_property_t * ps = class_copyPropertyList([self class], &count);
for (int i = 0; i<count; i++) {
objc_property_t p = ps[i];
id obj = [dic objectForKey:[NSString stringWithFormat:@"%s",property_getName(p)]];
if (obj) {
[mode setValue:obj forKey:[NSString stringWithFormat:@"%s",property_getName(p)]];
}
}
return model;
}
@end