IOS 字典快速转换为Model 模型
来源:互联网 发布:最火歌曲2016网络歌曲 编辑:程序博客网 时间:2024/05/17 23:45
一般情况下IOS得局部页面加载的过程是,创建一个Model然后,将Nib文件与Model进行关联,然后能够快速的获取到Nib文件上的控件实例。操作生成页面。
但是原生的内容是没有直接通过Json获取Model只能生成字典。然后转换为Model。下列方法就是通过字典来转换为Model的过程。
首先是要添加对应的使用的头文件#import <objc/runtime.h>
然后添加下面几个方法
Model从字典中填充数据
/* * 从字典中填充数据 */-(int)reflectDataFromDictionary:(NSDictionary *)dic{ unsigned int useCount ,outCount; Ivar *ivars = class_copyIvarList([self class], &outCount); for (const Ivar *p = ivars; p < ivars + outCount; p++) { Ivar const ivar = *p; //获取变量名 NSString *varName = [NSString stringWithUTF8String:ivar_getName(ivar)]; //获取变量值 id varValue = [self valueForKey:varName]; //如果是直接包含此名称的 if ([dic.allKeys containsObject:varName]) { varValue = [dic objectForKey:varName]; useCount++; }else{ NSString *tmp_varName = [self removeFirstUnderlined:varName]; if ([dic.allKeys containsObject:tmp_varName]) { varValue = [dic objectForKey:tmp_varName]; useCount++; } } [self setValue:varValue forKey:varName]; } return useCount;}
两个辅助方法
/* * 移除掉第一个下划线 */-(NSString *)removeFirstUnderlined:(NSString *)str{ if ([[str substringToIndex:1] isEqual:@"_"]) { return [str substringFromIndex:1]; } return str;}/* * 获取所有属性 */- (NSArray*)propertyKeys{ unsigned int outCount, i; objc_property_t *properties = class_copyPropertyList([self class], &outCount); NSMutableArray *keys = [[NSMutableArray alloc] initWithCapacity:outCount]; for (i = 0; i < outCount; i++) { objc_property_t property = properties[i]; NSString *propertyName = [[NSString alloc] initWithCString:property_getName(property) encoding:NSUTF8StringEncoding]; [keys addObject:propertyName]; } free(properties); return keys;}
将Model转换为字典
/* * 转换为字典 */-(NSDictionary *)convertToDictionary{ NSMutableDictionary *dic = [[NSMutableDictionary alloc] init]; for (NSString *key in [self propertyKeys]) { id propertyValue = [self valueForKey:key]; [dic setObject:propertyValue forKey:key]; } return dic;}
抽空写了一个Demo出来,GitHub死活上传不上去,所以放到CSDN上去了。如果需要的话可以Down下来看看http://download.csdn.net/detail/anxin1225/8190975
然后,就没有然后了……
0 0
- IOS 字典快速转换为Model 模型
- iOS开发中的使用kvc快速将字典模型转换成model模型。
- ios对象转换为字典
- IOS将字典转换成模型对象
- 将model转化为字典
- DataTable转换为Model
- 表单转换为Model
- part based model 模型 mat结构模型转换为opencv中的xml的格式
- IOS字典转模型
- ios 字典转模型
- iOS 字典转模型
- iOS 字典转模型
- iOS 字典转模型
- ios-字典转模型
- IOS 将请求参数字典转换为参数字符串
- iOS开发之将NSString字符串转换为字典NSDictionary
- 字典的快速赋值model: setValuesForKeysWithDictionary
- IOS 学习 字典转模型
- 开发语言小传之一:最早的编程语言——机器语言
- 炮案秸忧舷杏临肮凡永梅揪衬嫡俳
- linux ubuntu12.04 下的 vasp 5.2 的安装方法
- Floyd算法
- 九度OJ 1097 取中值
- IOS 字典快速转换为Model 模型
- php连接Mysql的增删改查操作
- web开发---给<td>添加超链接
- 寒假计划
- 圃侗靠鸦醇罩该释讯猿赣诽凡涂母
- MySQL 数据库概述及其入门语句
- poj-2251 广搜
- Python在Windows上的安装
- 噬瞥独挝姆纳杜阜涤翘阜岩源哑档