YYModel学习总结YYClassInfo(1)】的更多相关文章

OC的run-time 机制,简直像是网络上的猫! 我在开发中很少用到,但是作为iOS开发 人家肯定会问这个东西,所以深入的学习了下. 对于 run-time的入手,YYModel的学习,简直让人美滋滋.  对于YYModel的 源码解析什么的,网上很多,我主要参考 马在路上 的总结,他都这个总结,是我看过对于新手最友好的总结.浅显易懂,逐条分析,流程分析.很到位! 我呢,就记录下一下我是如何一步步学习YYModel的. 先从YYClassInfo.h开始看下图1-1-1, 图 1-1-1 先说…
#if __has_include(<YYModel/YYModel.h>) FOUNDATION_EXPORT double YYModelVersionNumber; FOUNDATION_EXPORT const unsigned char YYModelVersionString[]; #import <YYModel/NSObject+YYModel.h> #import <YYModel/YYClassInfo.h> #else #import "…
前言 因为公司需要开发一个内部使用的字典转模型的项目,所以最近也是在看关于字典转模型的内容.有Mantle,jsonModel,MJExtension等众多框架,最后还是选择了先从YYModel源码读起,发现一边读着读着我的膝盖就掉下去了,于是想总结一下自己在阅读源码的过程中收获的知识点 目录结构 工程目录.png 打开项目工程一开始以为只有2个类应该不会太难读懂,结果仔细点开一看,我膝盖骨也掉了,YY对NSObject中的一些内容进行了又一次的封装,增加了许多描述的内容,经过一番梳理,我整理出…
这段时间一直在忙新的需求,没有时间来整理代码,发表自己技术博客,今天我们来看一下YYModel的底层解析以及如何使用,希望对大家有所帮助! 一 概述 概括 YYModel是一个轻量级的JSON模型转换库,它的思路非常清晰代码风格也很好,所以还是建议大家看一下底层实现的逻辑,也可以从源码加深对Runtime的理解. 简介 下面是YYModel第三方库的一些代码结构. YYModel的总共文件只有5个文件 除掉YYModel.h之外,只剩下了YYClassInfo和NSObject+YYModel两…
前边3篇介绍了YYClassinfo 文件的组成单元,算是功能的分割,按照业务的设计思想来说,方向应该是相反的 由此引申出我们在设计api的思想其实和项目管理是很类似的----- 一些题外话 1.目的 回到代码,首先应该明确写这个类的目的是什么? 按照正常逻辑,我们需要一个类来获取我们所需要的所有和此类相关的信息 包括(类名,父类,成员变量,方法,属性...) 2.技术调研 调研我们所需要的结果是否能够通过技术手段实现 3.目标分隔,也就是任务分解 需要把整体目标分解成小目标,在本代码中则分割成…
/** Instance variable information. */ @interface YYClassIvarInfo : NSObject @property (nonatomic, assign, readonly) Ivar ivar; ///< ivar opaque struct @property (nonatomic, strong, readonly) NSString *name; ///< Ivar's name @property (nonatomic, ass…
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END 为了兼容Swift 中的 ? 和 ! oc 在6.3引入了两个新的类型注释:__nullable和__nonnull , 在字面上很好理解 可能为空, 不为空, 在上面代码中间则表示 默认的所有的属性都不能为空,这样我们在敲码的过程中只需要手写__nullable的类型就可以了  /** Type encoding's type. */ typedef NS_OPTIONS(NSUInteger, YYE…
原文:http://www.cnblogs.com/lujianwenance/p/5706548.html    本文主要是对YYModel文件结构的简单分析,能帮助你更快的熟悉和学习YYModel.如有问题,希望能指正,谢谢. 一.YYCLassInfo文件      YYClassIVarInfo:存放变量的Model      YYClassMethodInfo:存放方法的Model      YYClassPropertyInfo:存放property的Model      YYCla…
在使用swfit写代码的过程中,使用了下oc写的字典转模型,发现有些属性转不成功,就萌生了阅读源码的想法. 其实一直都知道Runtime机制,但并没有系统的学习,可能是因为平时的使用比较少,无意间在github上看到了YYModel ,粗略的看了下源码,发现有大量的c方面的知识,就产生了很大的兴趣,因为c总是性能的代名词吗?于是就有了这几篇文章,其实主要的目的还是对平时所学知识的一个总结. 毕竟,人类的记忆总是容易忘记的. 不知道作者在写这个框架时的思想是怎么样一个过程?但字里行间都流露出对代码…
_YYModelMeta   这个内部的类主要是对这个类的描述.包含了和此类转换相关的数据. /// A class info in object model. @interface _YYModelMeta : NSObject { @package YYClassInfo *_classInfo; /// Key:mapped key and key path, Value:_YYModelPropertyMeta. NSDictionary *_mapper; /// Array<_YYM…