美文网首页
使用runtime json转model

使用runtime json转model

作者: 回传妙手 | 来源:发表于2018-10-29 22:05 被阅读0次

    自己最近在学习runtime,希望在学习过程中做些记录,方便自己后来温习查阅。也希望能帮助到别的同学。

    在你的model中直接使用以下方法

    好了,直接上代码

    -(instancetype)initWithDictionary:(NSDictionary *)dic

    {

        if (self = [super init])

        {

            NSMutableArray *keys = [NSMutableArray array];

            unsigned int property_count;

            // 获取属性列表,注意入参

            objc_property_t *properties = class_copyPropertyList([self class], &property_count);

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

            {

                objc_property_t property = properties[i];

                //通过property_getName 函数获取属性名字

                NSString *peopertyName = [NSString stringWithCString:property_getName(property) encoding:NSUTF8StringEncoding];

                [keys addObject:peopertyName];

            }

            //释放properties指向的内存

            free(properties);

            for (NSString *key in keys)

            {

                if ([dic valueForKey:key] == nil)

                    continue;

                [self setValue:[dic valueForKey:key] forKey:key];

            }

        }

        return self;

    }

    代码很简单。

    使用class_copyPropertyList()函数获取属性列表,入参为class和一个int数据的地址。代用该函数会修改这个int参数。可以通过property_getName 函数获取属性名字,通过property_getAttribute 函数获取属性。

    相关文章

      网友评论

          本文标题:使用runtime json转model

          本文链接:https://www.haomeiwen.com/subject/pcdrottx.html