model转字典

+ (NSDictionary *) entityToDictionary:(id)entity

{

Class clazz = [entity class];

u_int count;

objc_property_t* properties = class_copyPropertyList(clazz, &count);

NSMutableArray* propertyArray = [NSMutableArray arrayWithCapacity:count];

NSMutableArray* valueArray = [NSMutableArray arrayWithCapacity:count];

for (int i = 0; i < count ; i++)

{

objc_property_t prop=properties[i];

const char* propertyName = property_getName(prop);

[propertyArray addObject:[NSString stringWithCString:propertyName encoding:NSUTF8StringEncoding]];

//        const char* attributeName = property_getAttributes(prop);

//        NSLog(@"%@",[NSString stringWithUTF8String:propertyName]);

//        NSLog(@"%@",[NSString stringWithUTF8String:attributeName]);

id value =  [entity performSelector:NSSelectorFromString([NSString stringWithUTF8String:propertyName])];

if(value ==nil)

[valueArray addObject:[NSNull null]];

else {

[valueArray addObject:value];

}

//        NSLog(@"%@",value);

}

free(properties);

NSDictionary* returnDic = [NSDictionary dictionaryWithObjects:valueArray forKeys:propertyArray];

NSLog(@"%@", returnDic);

return returnDic;

}

时间: 2024-08-07 13:17:35

model转字典的相关文章

django 将model转换为字典

from django.forms.models import model_to_dict from projects.models import ProjectInformation site = ProjectInformation.objects.get(id=6) dict = model_to_dict(site) dict {'CRFmethod': '', 'EDCprovider': '', 'acceptancenum': '', 'add_time': datetime.da

【objective-c】字典快速转换为Model代码

一般情况下iOS得局部页面加载的过程是,创建一个Model然后,将Nib文件与Model进行关联,然后能够快速的获取到Nib文件上的控件实例.操作生成页面. 但是原生的内容是没有直接通过Json获取Model只能生成字典.然后转换为Model.下列方法就是通过字典来转换为Model的过程. 将字典转换为Model 复制代码 -(BOOL)reflectDataFromOtherObject:(NSDictionary *)dic { unsigned int outCount, i; objc_

[iOS基础控件 - 4.2] 字典转模型Model

A.使用字典加载数据的缺点 1.用户自行指定key,容易出错 2.存入.取出都需要key,容易混乱 B.模型 (MVC中的model) 1.字典与模型对比: (1)字典:存储数据,通过字符串类型的key取值(容易写错,写错了key编译器不会报错) (2)模型:存储数据,自定义属性存储数据,其实就类似JavaBean,本质是数据封装 2.实现 (1)定义模型类 1 @interface App : NSObject 2 3 /** 4 copy : NSString 5 strong: 一般对象

IOS 字典快速转换为Model

一般情况下IOS得局部页面加载的过程是,创建一个Model然后,将Nib文件与Model进行关联,然后能够快速的获取到Nib文件上的控件实例.操作生成页面. 但是原生的内容是没有直接通过Json获取Model只能生成字典.然后转换为Model.下列方法就是通过字典来转换为Model的过程. 将字典转换为Model -(BOOL)reflectDataFromOtherObject:(NSDictionary *)dic { unsigned int outCount, i; objc_prope

IOS 字典模型互转框架 MJExtension

详细轻参考:https://github.com/CoderMJLee/MJExtension 功能很牛掰 能做什么? MJExtension是一套字典和模型之间互相转换的超轻量级框架 MJExtension能完成的功能 字典(JSON) --> 模型(Model) 模型(Model) --> 字典(JSON) 字典数组(JSON Array) --> 模型数组(Model Array) 模型数组(Model Array) --> 字典数组(JSON Array) 详尽用法主要参考

[django]django model的查询和更新

再分享Django系列的另外几篇文章: Django model select的各种用法详解:https://mp.weixin.qq.com/s/JVh4UnS2Tql9gUVaBSoGuA Django model update的各种用法介绍:https://mp.weixin.qq.com/s/B_aNB8Y8snbSVLURONZ4Qg Django配置Celery执行异步任务和定时任务:https://mp.weixin.qq.com/s/lXrp3igYo9W2UuE5Gauysg

MJExtension使用指导(转)

MJExtension能做什么? MJExtension是一套字典和模型之间互相转换的超轻量级框架 MJExtension能完成的功能 字典(JSON) --> 模型(Model) 模型(Model) --> 字典(JSON) 字典数组(JSON Array) --> 模型数组(Model Array) 模型数组(Model Array) --> 字典数组(JSON Array) 详尽用法主要参考 main.m中的各个函数 以及 NSObject+MJKeyValue.h MJEx

UI第十七讲.图片异步加载(包括第三方), KVO, KVC

一.异步下载图片二.UITableView中图片的异步下载 示例代码: 图片解析,并利用第三方方法对图片进行异步加载 #import "ViewController.h" #import "TableViewCell.h" #import "NetWorkHandle.h" #import "Model.h" #import "UIImageView+WebCache.h" @interface ViewC

告诉你KVC的一切-b

KVC(Key-value coding)键值编码,单看这个名字可能不太好理解.其实翻译一下就很简单了,就是指iOS的开发中,可以允许开发者通过Key名直接访问对象的属性,或者给对象的属性赋值.而不需要调用明确的存取方法.这样就可以在运行时动态在访问和修改对象的属性.而不是在编译时确定,这也是iOS开发中的黑魔法之一.很多高级的iOS开发技巧都是基于KVC实现的.目前网上关于KVC的文章在非常多,有的只是简单地说了下用法,有的讲得深入但是在使用场景和最佳实践没有说明,我写下这遍文章就是给大家详解