首先demo结构
1, model, .m文件中不需要写任何东西
2,创建一个NSObject的扩展
.m文件内容
#import "NSObject+FYJsonToModel.h"
#import <objc/runtime.h>
@implementation NSObject (FYJsonToModel)
// 利用 Runtime
-(void)fy_modelSetWithDictionary:(NSDictionary *)dictionary
{
if (dictionary == nil){
return;
}
unsigned int outCount =0;
Ivar*vars =class_copyIvarList([self class], &outCount);//获取到所有的成员变量列表
//遍历所有的成员变量
for(int i =0; i < outCount; i++) {
Ivar ivar = vars[i];//取出第i个位置的成员变量
const char*propertyName =ivar_getName(ivar);//获取变量名
NSString*proOcName = [NSString stringWithUTF8String:propertyName];
id jsonValue = [dictionary objectForKey:[proOcName stringByReplacingOccurrencesOfString:@"_" withString:@""]];
object_setIvar(self, ivar,jsonValue);
}
}
@end
3,使用
我们不生产代码 我们只是代码的搬运工 原文连接