NSDictionary转化为实体类对象
方法一:
使用objective-c NSObject自带的方法
setValuesForKeysWithDictionary:dict
作用是: 如果NSDictionary中的key和实体类对象的属性名相同, 那么把该key的value 设置到实体类对应的属性
- (instancetype)initWithDict:(NSDictionary *)dict
{
if (self = [super init]) {
[self setValuesForKeysWithDictionary:dict];
}
return self;
}
方法二: 网上的细化的方法
http://www.cocoachina.com/bbs/simple/?t97803.html
#import <objc/runtime.h>
-(NSString *) className {
return NSStringFromClass([self class]);
}
- (void)objectFromDictionary:(NSDictionary*) dict {
unsigned int propCount, i;
objc_property_t* properties = class_copyPropertyList([self class], &propCount);
for (i = ; i < propCount; i++) {
objc_property_t prop = properties;
const char *propName = property_getName(prop);
if(propName) {
NSString *name = [NSString stringWithCString:propName encoding:NSUTF8StringEncoding];
id obj = [dict objectForKey:name];
if (!obj)
continue;
if ([[obj className] isEqualToString:@"__NSCFString"] || [[obj className] isEqualToString:@"__NSCFNumber"]) {
[self setValue:obj forKeyPath:name];
} else if ([obj isKindOfClass:[NSDictionary class]]) {
id subObj = [self valueForKey:name];
if (subObj)
[subObj objectFromDictionary:obj];
}
}
}
free(properties);
}
- (id)initWithDictionary:(NSDictionary*) dict {
self = [self init];
if(self && dict)
[self objectFromDictionary:dict];
return self;
}
NSDictionary转化为实体类对象的更多相关文章
- SpringBoot实体类对象和json格式的转化
1.引入maven依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson ...
- java 获取实体类对象属性值的方法
在java中我们要获得实体类对象的属性,一般情况是将实体类中的属性私有化,然后再对外提供get()与set()方法,然后再获取实体类对象的属性的时候先把对象new出来,再用变量名.get()的方法得到 ...
- @NamedEntityGraphs --JPA按实体类对象参数中的字段排序问题得解决方法
JPA按实体类对象参数中的字段排序问题得解决方法@Entity @Table(name="complaints") @NamedEntityGraphs({ @NamedEntit ...
- Hibernate_day02--课程安排_主键生成策略_对实体类crud操作_实体类对象状态
Hibernate_day02 上节内容 今天内容 实体类编写规则 Hibernate主键生成策略 实体类操作 对实体类crud操作 添加操作 根据id查询 修改操作 删除操作 实体类对象状态(概念) ...
- Mybaits 源码解析 (八)----- 全网最详细,没有之一:结果集 ResultSet 自动映射成实体类对象(上篇)
上一篇文章我们已经将SQL发送到了数据库,并返回了ResultSet,接下来就是将结果集 ResultSet 自动映射成实体类对象.这样使用者就无需再手动操作结果集,并将数据填充到实体类对象中.这可大 ...
- SQLServer之数据库表转化为实体类【带注释】
1.在开发过程中,有时候需要将数据库表转化为实体类.手敲除了不方便,还容易出错.本着DRY+懒人原则,参考了一位老司机的博客[见底部],并在其基础上进行了优化.[原先是不带注释的] DECLARE @ ...
- 使用fastjson 进行jsonObject转实体类对象
使用fastjson 进行jsonObject转实体类对象 1 <dependency> 2 <groupId>com.alibaba</groupId> 3 ...
- solr搜索结果转实体类对象的两种方法
问题:就是把从solr搜索出来的结果转成我们想要的实体类对象,很常用的情景. 1.使用@Field注解 @Field这个注解放到实体类的属性[字段]中,例如下面 public class User{ ...
- c# 利用反射动态给实体类对象赋值
转:http://blog.sina.com.cn/s/blog_659a572b0100xp5s.html 例子如下 using System; using System.Collections.G ...
随机推荐
- js的各种继承
请先看这个链接:https://segmentfault.com/a/1190000002440502 还有一个里边有js的采用临时方法的继承 http://javapolo.iteye.com/bl ...
- servlet的转发与重定向
转发和重定向都能让浏览器获得另外一个URL所指向的资源,但两者的内部运行机制有着很大的区别. 1.转发:有两种方式获得转发对象(RequestDispatcher):一种是通过HttpServletR ...
- 传智168期JavaEE就业班 day04-dom
* 课程回顾: * js语法 * js的动态函数和匿名函数 * js动态函数 Function new Function(); * 匿名函数:没有名称的函数,起个名称 var add = functi ...
- JavaScript事件冒泡简介及应用
一.什么是事件冒泡 在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事 件处理程序或者事件返回true,那么这个 ...
- php 判断是否get传值的参数是否存在
if(is_array($_GET)&&count($_GET)>0)//先判断是否通过get传值了 { if(isset($_GET["id&qu ...
- [转]Oracle SOME,ANY,All,EXISTS,IN
原文地址:http://blog.csdn.net/shangboerds/article/details/43983791 -- Start 这几个关键字有一个共同点,那就是它们一般应用于子查询中. ...
- Java-日期转换
如下: package 时间日期类; import java.text.SimpleDateFormat; import java.util.Date; public class 日期格式转换 { / ...
- 解决Oracle忘记密码问题
在使用ORACLE的过程中,会出现各种各样的问题,各种各样的错误,其中ORA-12899就是前段时间我在将数据导入到我本地机器上的时候一直出现的问题.不过还好已经解决了这个问题,现在分享一下,解决方案 ...
- IOS开发 证书总结
开发者证书 ------>> 首先你必须获得apple开发者证书,上图这个文件就是apple开发者证书,只要有apple的开发者账号就可以下载到,此证书可以直接到 developer ...
- SQL多条件查询
SELECT a.tel,a.business_code,b.name AS business_name,a.register_time FROM T_RED_USER a LEFT JOIN T_P ...