首先demo結(jié)構(gòu)
1, model琉闪, .m文件中不需要寫任何東西
2,創(chuàng)建一個(gè)NSObject的擴(kuò)展
.m文件內(nèi)容
#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個(gè)位置的成員變量
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砸彬,使用
我們不生產(chǎn)代碼 我們只是代碼的搬運(yùn)工 原文連接