YYModel 原始碼歷險記:程式碼結構

發表於2016-05-26

前言

因為公司需要開發一個內部使用的字典轉模型的專案,所以最近也是在看關於字典轉模型的內容。有Mantle,jsonModel,MJExtension等眾多框架,最後還是選擇了先從YYModel原始碼讀起,發現一邊讀著讀著我的膝蓋就掉下去了,於是想總結一下自己在閱讀原始碼的過程中收穫的知識點

目錄結構

YYModel 原始碼歷險記:程式碼結構
工程目錄.png

開啟專案工程一開始以為只有2個類應該不會太難讀懂,結果仔細點開一看,我膝蓋骨也掉了,YY對NSObject中的一些內容進行了又一次的封裝,增加了許多描述的內容,經過一番梳理,我整理出了一張結構圖

YYModel 原始碼歷險記:程式碼結構
程式碼結構.png

理解

  1. YYClassInfo 是對於Class進行了封裝,進行封裝增加描述
    • YYClassIvarInfo 對 Class的Ivar進行了進行封裝增加描述
    • YYClassMethodInfo 對 Class 的 Method進行封裝增加描述
    • YYClassPropertyInfo 對 Class 的 Property進行了封裝描述
  2. YYModel :
    • YYModelMeta 對YYClassInfo進行封裝描述
    • YYModelPropertyMeta對YYClassProperty進行封裝描述

主要類別

  1. NSObject(YYModel) : 提供一些字典模型互轉的方法,將對key/value進行匹配,賦值給Model對應的property
  2. NSArray(YYModel): 為NSArray提供字典轉模型的方法
  3. NSDictionary(YYModel):為NSDictionary提供字典轉模型方法

相關文章