#import "BaseModel.h"
@implementation BaseModel
-(id)initContentWithDic:(NSDictionary *)dic
{
self = [super init];
if (self) {
[self dicToObject:dic];
}
return self;
}
//建立dic和对象之间的映射
-(NSDictionary *)dicObjectAtt:(NSDictionary *)jsonDic
{
NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithCapacity:jsonDic.count];
for (id key in jsonDic) {
[dic setObject:key forKey:key];
}
return dic;
}
-(SEL)stringToSel:(NSString *)modelKey
{
NSString *first = [[modelKey substringToIndex:1] uppercaseString];
NSString *end = [modelKey substringFromIndex:1];
NSString *methodStr = [NSString stringWithFormat:@"set%@%@:", first, end];
return NSSelectorFromString(methodStr);
}
//把字典里面的值通过映射找到对象属性并赋值
-(void)dicToObject:(NSDictionary *)dic
{
for (id key in dic) {
id modelKey = [[self dicObjectAtt:dic] objectForKey:key];
if (modelKey) {
//根据字符串生成set方法
SEL action = [self stringToSel:modelKey];
//给对象属性赋值
if ([self respondsToSelector:action]) {
id value = [dic objectForKey:key];
[self performSelector:action withObject:value];
}
}
}
}
@end