WLFModel

本文介绍了YYModel的基本流程,并详细解析了作者尝试自定义的WLFModel的实现过程,包括WLFPropertyInfo和WLFClassInfo的定义,以及modelWithDictionary方法的使用。通过对objc_msgsend的探讨,展示了如何设置属性值,文章旨在学习和理解模型转换的原理。
摘要由CSDN通过智能技术生成

最近真是忙的一逼,程序员和产品真的是死对头,公司新来两个产品,本来项目紧,需求改这样,又改那样。不管是iOS还是Android都对他们发了脾气。我也有句“妈卖批”想对他们说。

YYModel的基本流程

在工作中一直是使用YYModel来将Json转换成model, 确实很好用,虽然知道和runtime有关,但是从没有看过内部的代码。因为我还很菜,没有阅读别人代码的能力。。不过最后还是硬着头皮看了点,有了点眉目。

老实说,其实我还是没有完全读懂,不过基本流程还算清楚。经过我的总结,YYModel的基本流程,约有以下几步:

  1. 使用的时候先调用modelWithJson,在内部将Json字符串,转换成NSDictionary,然后调用modelWithDictionary
  2. 如果存在相关类信息的缓存,则取缓存信息,否则,调用initWithClass方法,获取到类的方法、属性等信息,同时写入缓存
  3. 如果有实现modelPropertyWhiteList、modelPropertyBlackList、modelContainerPropertyGenericClass等方法,则相应的做处理,添加到对应的数据结构
  4. 沿继承链获取到属性对应的方法,如getter, setter,直达根对象
  5. 调用modelSetWithDictionary,根据model信息,调用setter方法,设置相关值。

粗略流程就是这样,根据YYModel,我自己也想尝试写一个,当然比不起大神写的,但是谁没有一个辣鸡的过程呢?写这个并不为实际使用,仅为学习和娱乐。

WLFModel的使用

首先根据使用的方法,同样的,按照YYModel的使用方法,用Json字符串做为输入。内部同样将Json转换成NSDictionary,再调用modelWithDictionary方法:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值