最近总觉得Model生成工具和JOSNModel用起来不顺心又开始手写Model了。
好处:
1.字段名字可以自己重定义,不用再用接口返回的看不懂的名字了
2.安全,怎么来都不会报错
3.修改方便,想怎么改怎么改
直接上图
主要就是说一下listModelCreate这个方法,作用就是应对数组里有字典的数据,第一个参数:要转换的数组,第二个参数数组里Model对象的类名字
/*
* 将数组里的元素自动装换成Model类(对应的Model类要实现initWithDictionary:方法)
* @property dataArr 要转换的数组
* @property className 数组里的item对应的类名字
* return 转换后存有数据的数组
*/
-(NSArray *)listModelCreate:(NSArray *)dataArr itemName:(NSString *)className;
-(NSArray *)listModelCreate:(NSArray *)dataArr itemName:(NSString *)className{
NSMutableArray * tmpArr = [NSMutableArray arrayWithCapacity:[dataArr count]];
NSAssert([dataArr isKindOfClass:[NSArray class]], @"带转化数据不为数组");
[dataArr enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
Class itemClass = NSClassFromString(className);
SEL selector = NSSelectorFromString(@"initWithDictionary:");
if ([[itemClass alloc] respondsToSelector:selector]) {
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
[tmpArr addObject:[[itemClass alloc] performSelector:selector withObject:obj]];
#pragma clang diagnostic pop
}
}];
return [NSArray arrayWithArray:tmpArr];
}
文章更新http://www.jianshu.com/p/03470700722b(属性自动赋值)