Model 转换为 字典方法

在与后台服务器的对接过程中,用model不能直接post给后台,所以 需要将model转化为字典再post过去,这里提供一个简单的model转字典的方法,也算是我自己写项目的笔记吧。
//其中的class_copyPropertyList是runtime里面遍历一个对象属性的方法,通过这个方法可以遍历出某个对象的所有属性

-(NSMutableDictionary *)returnToDictionaryWithModel:(UserLoadingModel *)model
{
        NSMutableDictionary *userDic = [NSMutableDictionary dictionary];
        unsigned int count = 0;
        objc_property_t *properties = class_copyPropertyList([UserLoadingModel class], &count);
        for (int i = 0; i < count; i++) {
            const char *name = property_getName(properties[i]);

            NSString *propertyName = [NSString stringWithUTF8String:name];
            id propertyValue = [model valueForKey:propertyName];
            if (propertyValue) {
               [userDic setObject:propertyValue forKey:propertyName];
            }

        }
        free(properties);
  
    return userDic;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 对于从事 iOS 开发人员来说,所有的人都会答出【runtime 是运行时】什么情况下用runtime?大部分人能...
    梦夜繁星阅读 3,734评论 7 64
  • 一、深复制和浅复制的区别? 1、浅复制:只是复制了指向对象的指针,即两个指针指向同一块内存单元!而不复制指向对象的...
    iOS_Alex阅读 1,441评论 1 27
  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 1,814评论 0 9
  • 今天上午有点迷茫不知道怎么发单子,下午还可以
    王万锋阅读 260评论 0 0
  • 在这个世界我们都以旁观者的姿态去看待,因为这样我们才有足够的语言伤害别人,保全自己。像枷锁一样困住了自己,还渴望别...
    默阡阅读 265评论 0 1