很喜歡簡(jiǎn)書的整體設(shè)計(jì)模式藤违,于是把以前的筆記稍加整理帐偎,搬一部分到這里慈鸠。
通過(guò)runtime實(shí)現(xiàn)簡(jiǎn)單的json解析(仿JsonModel模式),只實(shí)現(xiàn)了一小小部分功能鸟款,并沒(méi)有做太多的容錯(cuò)處理膏燃,主要是為了練習(xí)一下runtime機(jī)制
部分代碼:
#import "CWModel.h"
/*
*"code": "110000",
*"name": {"code": "110101", "name": "東城區(qū)"},
*"cell": []
*/
/*
*"code": "110100",
*"name": "市轄區(qū)",
*"cell": [{
*"code": "110101",
*"name": "東城區(qū)"
*}]
*/
@interface CWAreaModel : CWModel
@property (nonatomic, copy) NSString *code;
@property (nonatomic, copy) NSString *name;
@end
@protocol CWAreaModel @end
@interface CWCityModel : CWModel
@property (nonatomic, copy) NSString *code;
@property (nonatomic, copy) NSString *name;
@property (nonatomic, strong) NSArray <CWAreaModel>*cell;
@end
@protocol CWCityModel @end
@interface CWChinaModel : CWModel
@property (nonatomic, assign) BOOL ok;
@property (nonatomic, assign) NSInteger number;
@property (nonatomic, copy) NSString *code;
@property (nonatomic, strong) CWAreaModel *name;
@property (nonatomic, strong) NSArray <CWCityModel>*cell;
@property (nonatomic, strong) NSDictionary *nameDict;
@end
/** 字典轉(zhuǎn)模型 */
+ (instancetype)modelWithDict:(NSDictionary *)dict;
/** 打印 */
+ (NSString *)resolveDict:(NSDictionary *)dict;
Demo中有注釋具體實(shí)現(xiàn)Demo地址:https://github.com/CyanSmile/RuntimeTest.git